Последняя версия DataExpress 3 beta от 22 мая 2018 года. Скачать. Энциклопедия DX. Форум на Develop-Soft

TListWindow

Вопросы о применении того или иного класса или функции.
neitri
Мастер скриптов
Сообщения: 537
Зарегистрирован: Пн фев 13, 2017 5:42 pm

Re: TListWindow

Сообщение neitri » Сб май 20, 2017 8:15 am

Все равно не понятно.
Я кидаю на форму комбобокс и drFilterPanel поле. объект. Объект нужен чтобы прикрутить обработчик. Из обработчика необходимо получить только поле, которое можно сохранить в параметрах формы. Создаю вторую форму комбобокс поле. Поле сохраняем в параметрах другой формы.
При вызове обработчика идем от комбобокса по родителям до формы и читаем что там в параметрах на сохраняли.
Помогли Тебе. Помоги проекту.
Реквизиты помощи Вы можете найти в окне "О программе"

drts
Интересующийся
Сообщения: 235
Зарегистрирован: Сб окт 29, 2016 11:35 pm
Откуда: Новороссийск

Re: TListWindow

Сообщение drts » Сб май 20, 2017 8:49 am

neitri писал(а):Все равно не понятно.
Вот пример.
Демо.zip
(205.27 КБ) 16 скачиваний
.

Аватара пользователя
admin
Разработчик
Сообщения: 3475
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская

Re: TListWindow

Сообщение admin » Сб май 20, 2017 1:25 pm

Вряд ли можно проще. Если б окно списка существовало всегда, то можно было передать параметр сразу. Поэтому столько посредников. Только вместо MainWindow лучше использовать Self (в функции выражения можно).

neitri
Мастер скриптов
Сообщения: 537
Зарегистрирован: Пн фев 13, 2017 5:42 pm

Re: TListWindow

Сообщение neitri » Сб май 20, 2017 1:30 pm

Через селф, без посредника в виде глобальной формы.
Вложения
Демо.zip
(209.27 КБ) 16 скачиваний
Помогли Тебе. Помоги проекту.
Реквизиты помощи Вы можете найти в окне "О программе"

drts
Интересующийся
Сообщения: 235
Зарегистрирован: Сб окт 29, 2016 11:35 pm
Откуда: Новороссийск

Re: TListWindow

Сообщение drts » Сб май 20, 2017 2:48 pm

neitri писал(а):Через селф, без посредника в виде глобальной формы.
в общем мой вариант немного проще. Вопрос к admin - а Вы как мели в виду через Self - по варианту neitri?

Код: Выделить всё

...
comp:=TComponent(sender);
  while (comp.classname <> 'TdxForm') and (comp<>nil) do
    comp:=comp.Owner;
  if TdxForm(comp).params.ParamExists('dr_fldFilter'+(objCombo.name)) then
    lw.Params.Values['dr_fldFilter']:=TdxForm(comp).params.values['dr_fldFilter'+(objCombo.name)]
  ...


И Второе - использование mainform в качестве хранилища как-то усложняет работу программы или в принципе это несущественно?
Спасибо neitri за отклик. Функция у меня уже работает, но вот чесалось))). Хочется превратить мой индусский код в красоту. Правда зачем мне это, я и сам не знаю.

Аватара пользователя
admin
Разработчик
Сообщения: 3475
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская

Re: TListWindow

Сообщение admin » Сб май 20, 2017 5:01 pm

drts писал(а):в общем мой вариант немного проще. Вопрос к admin - а Вы как мели в виду через Self - по варианту neitri?

Да.
neitri писал(а):И Второе - использование mainform в качестве хранилища как-то усложняет работу программы или в принципе это несущественно?

Не усложняет. Просто возможен случай открытия более одного экземпляра формы, тогда параметры в MainWindow будут перезаписаны.

Если Sender - это dx-компонент, то такой цикл не нужен.

Код: Выделить всё

while (comp.classname <> 'TdxForm') and (comp<>nil) do
    comp:=comp.Owner;

neitri
Мастер скриптов
Сообщения: 537
Зарегистрирован: Пн фев 13, 2017 5:42 pm

Re: TListWindow

Сообщение neitri » Сб май 20, 2017 5:22 pm

Цикл сделан умышленно. Объект может быть размещен в панели. Тогда родитель будет панель.
Помогли Тебе. Помоги проекту.
Реквизиты помощи Вы можете найти в окне "О программе"

Аватара пользователя
admin
Разработчик
Сообщения: 3475
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская

Re: TListWindow

Сообщение admin » Сб май 20, 2017 5:35 pm

neitri писал(а):Цикл сделан умышленно. Объект может быть размещен в панели. Тогда родитель будет панель.

Может Parent тогда? Владелец Owner у dx-компонентов всегда TdxForm.

neitri
Мастер скриптов
Сообщения: 537
Зарегистрирован: Пн фев 13, 2017 5:42 pm

Re: TListWindow

Сообщение neitri » Сб май 20, 2017 5:44 pm

Парент для tobject не пошел.
Owner я нашел быстрее чем parent в дереве объектов.
Помогли Тебе. Помоги проекту.
Реквизиты помощи Вы можете найти в окне "О программе"

drts
Интересующийся
Сообщения: 235
Зарегистрирован: Сб окт 29, 2016 11:35 pm
Откуда: Новороссийск

Re: TListWindow

Сообщение drts » Сб май 20, 2017 5:51 pm

Спасибо. Было весьма полезно.


Вернуться в «Вопросы по API DataExpress.»

Кто сейчас на конференции

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