Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 29 мар 2024, 08:53

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
СообщениеДобавлено: 31 авг 2022, 17:27 
Не в сети

Зарегистрирован: 25 фев 2019, 14:39
Сообщений: 60
Здравствуйте!

Хочется странного. Есть целочисленное поле в БД (вообще говоря, тип поля не очень важен, но пусть так). В интерфейсе отображаться должно не целочисленное значение, а однозначно связанный с ним текст. Обычный Lookup, но. Значение поля в конкретной записи должно одновременно:
1. входить в перечень значений другого поля в другой таблице
2. удовлетворять некоторым условиям, часть из которых определяются оператором, а часть получаются из совсем других источников.

Все вычисления, связанные с возможностью присвоения определённого значения, производятся пользователем в отдельной форме.
Можно ли как-то настроить (или модифицировать) компонент TDBLookupСomboBoxEh таким образом, чтобы в качестве DropDown формы показывалась форма, упомянутая выше (пока получилось только на отдельный EditButton повесить эту функцию), а значение Text бралось не из ListSource.DataSet.... а возвращалось, например, функцией?

Если сложно написал, то, можно такой пример привести: в DropDown дерево (VitrualStringTree), выбор элемента однозначно определяет значение поля. Нужно в поле поставить id, а в текст - значение первой колонки TreeView. И, соответственно, получать значение текста не из ListSource.

Пока писал, понял, что настроить, скорее всего, не удастся, поэтому дополнительный вопрос: можно ли создать наследника, в котором перекрыть работу с FList* полями TCustomDBLookupComboboxEh? Вопрос, в том числе и со стороны лицензирования, можно ли пользователю создавать компоненты-наследники?

С уважением
Евгений.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 сен 2022, 14:10 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1546
Добрый день.

Наследовать классы и компоненты библиотеки можно.

Возможно, в вашем случае может подойти использование технологии DropDownForms.

Читайте раздел "Технология DropDownForms - пользовательские выпадающие окна"
в "EhLib - Руководство разработчика.doc"

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 13 сен 2022, 19:31 
Не в сети

Зарегистрирован: 25 фев 2019, 14:39
Сообщений: 60
Спасибо, примерно в эту сторону и двигаюсь.
Небольшое замечание по DropDownForms в Lazarus: если просто поставить EhLib, возможности создать такую форму не будет без ручного прописывания типа и невозможности редактирования новых свойств. Для того, чтобы можно было создавать их штатным способом, то есть, чтобы TCustomDropDownFormEh появилась в File|New..., нужно добавить следующее в модуль DropDownformEh:

Код:
uses
  ....custforms,....

implementation

procedure RegisterClasses;
begin
...
  RegisterCustomForm(TCustomDropDownFormEh,'EhLib');
end;

а в зависимости библиотеки включить пакет CustomForms. Либо написать свою RegisterCustomForm, используя API Lazarus IDE.

С уважением
Евгений.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 сен 2022, 14:18 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1546
Добрый день.

В сборку EhLib.VCL 10.2 Build 10.2.032 добавили: Lazarus- File - New... - EhLib - TCustomDropDownFormEh

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB