Форум Кладовочки АЛьФ`а

Обсуждение проектов => FormEx => Тема начата: MWW_Ruza от 14 июня 2025, 10:48

Название: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: MWW_Ruza от 14 июня 2025, 10:48
Добрый день...
Что-то я затупил...
Вроде-как есть метод...
Когда-то, 100 лет назад, даже на мисте обсуждалось:
https://forum.mista.ru/topic.php?id=360721
Но, что-то не получается... Такой код, по сути, из документации:

АтрФормы = СоздатьОбъект("АтрибутФормы");
АтрФормы.УстановитьАтрибут(Форма,"СформСтрока39");
АтрФормы.ЦветШрифта= 255;

Пробовал вставлять и в ПриОткрытиии(), и в ПослеОткрытия(), и в то место, где эта строка непосредственно выводится - бесполезно...

Делал и так, нашел где-то на 1срр:

Сервис = СоздатьОбъект("Сервис");
ФормаРасш = СоздатьОбъект("РасширениеФормы");
ФормаРасш.УстановитьФорму(Форма);
ФормаРасш.ПолучитьАтрибут("СформСтрока39").ЦветШрифта = 255;

Как-то вариант не совсем из документации, но вдруг...
Но, нет, все то-же самое.

Ошибок нет, но и шрифт остается черным...
Это вообще работает? Если да, то, что я не так делаю?

 
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: MWW_Ruza от 14 июня 2025, 12:23
Вот такая "бяка":
(https://content.foto.my.mail.ru/mail/m_w_w/590/h-618.jpg)
По сути, эту строку можно было сделать просто как текст на форме, но, решил сделать как недоступное поле ввода, для того, что-бы можно было из нее копипастить фрагменты, при необходимости. Но, хотел ее подкрасить, ну, предположительно в темно-синий (255 в тексте, это просто для пробы, потом бы заменил на другой)...
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: Злоп от 14 июня 2025, 17:32
я сомневаюсь, что недоступное после ввода можно покрасит текст.
Для пробы покраску делал бы после того как форма отобразится на экране, через ОО.
А если так не получится - ну сделать доступное поле ввода на форме и пихать туда комментарий..?
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: MWW_Ruza от 15 июня 2025, 09:37
Цитата: Злоп от 14 июня 2025, 17:32я сомневаюсь, что недоступное после ввода можно покрасит текст.
Сереж, это чуть ли не первое, что мне пришло в голову...
Естественно, я попробовал. Че-там, одну "галочку" снять...
Как был текст в поле ввода черный, так и остался...

Сейчас, немного разгребу текучку, сделаю демо обработку, отдельную, со всеми моими "мудовыми рыданиями"...
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: MWW_Ruza от 15 июня 2025, 10:36
Вот... Подразумевается, что ФормЕкс грузится в конфе в ГМ ПриНачалеРаботыСистемы.
Все "эксперименты" там... Закомментированы. Поле ввода доступно.
Пробовал на версии ФормЕкс 199.
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: vladmenleo от 16 июня 2025, 07:06
Не работает именно с многострочным текстом. Если убрать галку многострочности, то работает. Formex 190
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: MWW_Ruza от 16 июня 2025, 09:48
Ага! Все именно так:
(https://content.foto.my.mail.ru/mail/m_w_w/590/h-619.jpg)
БагоФича :-)
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: vladmenleo от 17 июня 2025, 05:40
А можно вот так изгольнуться. Кидаем на форму простой текст о копируем по правой кнопке в буфер обмена
Процедура ПослеОткрытия()
ПробСтр = "Мой дядя самых скверных правил, в нетрезвом виде Волгой правил... На тормоза нажать не смог, теперь не в шутку занемог! :-)";
Сервис = СоздатьОбъект("Сервис");
ФормаРасш = СоздатьОбъект("РасширениеФормы");
ФормаРасш.УстановитьФорму(Форма);
// ФормаРасш.ПолучитьАтрибут("ПробСтр").ЦветШрифта = 255;

РаскрАтр = ФормаРасш.ПолучитьАтрибут("ПробСтр");
РаскрАтр.ЦветШрифта = 255;
// ПробСтр1 Реквизит типа текст на форме
Форма.ПробСтр1.Заголовок("Будем копировать в буфер обмена " + ПробСтр);
Форма.ПробСтр1.Цвет(0,0,255); // Цвет стандартным методом
Форма.Обновить();
// РаскрАтр.ЦветФона = 255; // Так вообще вышибает 1С при интерактивной попытке ввода текста в поле. Фон - белый.

//Попытка
// АтрФормы = СоздатьОбъект("АтрибутФормы");
//Исключение
// Предупреждение("Недоступен FormEx!");
// СтатусВозврата(0);
// Возврат;
//КонецПопытки;
//АтрФормы.УстановитьАтрибут(Форма,"ПробСтр");
//АтрФормы.ЦветШрифта = 255;
// ПробСтр = "Мой дядя самых скверных правил, в нетрезвом виде Волгой правил... На тормоза нажать не смог, теперь не в шутку занемог! :-)";
// РаскрАтр.Значение = "Мой дядя самых скверных правил, в нетрезвом виде Волгой правил... На тормоза нажать не смог, теперь не в шутку занемог! :-)";
КонецПроцедуры

Процедура Сформировать()
  ПробСтр = "Мой дядя самых скверных правил, в нетрезвом виде Волгой правил... На тормоза нажать не смог, теперь не в шутку занемог! :-)";   
КонецПроцедуры

Процедура ПриДвиженииМыши(сост, х, у)
Атр = ФормаРасш.ПолучитьАтрибутПоКоординатам(х,у);
Если ТипЗначенияСтр(Атр) = "АтрибутФормы" Тогда
Если Атр.Идентификатор = "ПробСтр1" Тогда
Атр.УстановитьКурсор(14); // 14 - рука
КонецЕсли;
КонецЕсли;
КонецПроцедуры

Процедура ПриНажатииПравойКнопки(сост, х, у, ФСО)
Атр = ФормаРасш.ПолучитьАтрибутПоКоординатам(х,у);
Если ТипЗначенияСтр(Атр) = "АтрибутФормы" Тогда
Если Атр.Идентификатор = "ПробСтр1" Тогда
ФСО = 0;
Буфер = СоздатьОбъект("БуферОбмена");
Буфер.Установить(Атр.Заголовок);
Сообщить("Атрибут скопирован в буфер обмена");
СтрокаИзБуфера = Буфер.Получить();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: Злоп от 17 июня 2025, 11:21
Что-то совсем не въехал... Это раскраска шрифта многострочного поля ввода?
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: vladmenleo от 17 июня 2025, 11:34
Цитата: Злоп от 17 июня 2025, 11:21Это раскраска шрифта многострочного поля ввода
Нет, это раскраска текстового поля и копирование его в буфер обмена, что в-общем-то и хотел ТС
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: MWW_Ruza от 17 июня 2025, 11:39
Да не хотел я этого... Просто обосновал, почему поле ввода а не текст на форме. По сути, пофик. Просто вылезло, что шрифт не красится в нем, решил спросить почему :-)
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: MWW_Ruza от 17 июня 2025, 11:46
Опять же, в этом примере, как я понял, копируется в буфер все текстовое поле, а я хотел, выделять мышкой нужные фрагменты строки, и копировать только их. Поэтому поле ввода.
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: vladmenleo от 17 июня 2025, 11:58
Ну извиняйте. Если в многострочном поле вводе текст не красится, то это наверно к Альфу, чтобы починил баго-фичу
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: Злоп от 17 июня 2025, 12:59
Цитата: MWW_Ruza от 17 июня 2025, 11:46Опять же, в этом примере, как я понял, копируется в буфер все текстовое поле, а я хотел, выделять мышкой нужные фрагменты строки, и копировать только их. Поэтому поле ввода.
разбей текст на слова по пробелам и кинь в ТЗ на форму - клик по строке - скопировать в буфер. клик еще раз на другом слове - замещает ранее. или даже возможен режим добавления в буфер. всяко быстрее будет чем выделять мышкой в тексте.
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: MWW_Ruza от 17 июня 2025, 14:27
Да уж...
(https://content.foto.my.mail.ru/mail/m_w_w/590/h-620.jpg)
Не нужно мне это вообще... Ну, не та задача, от слова совсем.
То, что может потребоваться изменить, меняется в форрме редактирования строки... Соответственно там все эти поля есть. Можно спокойно скопипастить, без каких-то проблем.
Просто захотел лишнюю "красивость" навести, и обнаружил, что заявленный метод FormEx не работает... Стало интересно почему, может в других ситуациях пригодится... Думал сам туплю чего-то, а тут оказывается - БагоФича...
Алексею на заметку, если он еще совсем не забросил проект.
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: MWW_Ruza от 17 июня 2025, 14:35
Цитата: Злоп от 17 июня 2025, 12:59разбей текст на слова по пробелам

Ты мою "сокращалку" наименований алкашки из ЕГАИС не видел?
Вот:
(https://content.foto.my.mail.ru/mail/m_w_w/590/h-621.jpg)
Чего-то вспомнилась :-)
Но, там у меня "все круто" она вся из АктивеИксов состоит, живая, без подтверждения ентером работает...
Намного удобнее, чем в строке наименование править :-)
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: MWW_Ruza от 17 июня 2025, 14:44
Вот так это работает :-) (https://cloud.mail.ru/public/RWg3/aKtwJWdFU)
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: Djelf от 17 июня 2025, 17:22
Лет 10-20 назад он писал что раз штатно работает, то и ладненько...
Проблемы то нет, выводим как выводятся адреса текстом в штатных конфах, можем красить, можем не красить...
Рядом кнопка редактирования. Усё!
Можно через ActiveX красить, но  ActiveX же требует регистрации в реестре, зачем оно нам надо?
Название: Re: Цвет шрифта поля ввода (строка неограниченной длины) на форме - ?
Отправлено: MWW_Ruza от 17 июня 2025, 19:56
Цитата: Djelf от 17 июня 2025, 17:22Лет 10-20 назад он писал что раз штатно работает, то и ладненько...
Антон, ничего не понял... Что работает штатно? Раскраска полей ввода?
Это как?
Да, через Формекс можно покрасить, но только "немногострочные" атрибуты...
АктивеИкс наверняка можно прикрутить, почему бы и нет, но... Это немного не то...
В общем, тему можно закрывать, проблема понятна - не работает для многострочных, нет смысла искать вчерашний день.