Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

TDBLookupComboBox. Реакция на нажатие ESC

Delphi , Базы данных , Ошибки БД

TDBLookupComboBox. Реакция на нажатие ESC

Автор: Vedmed

Если на форме находится компонент TDBLookupComboBox и TButton со свойством Cancel, равным True, то выпадающий список компонента TDBLookupComboBox может не закрываться при нажатии клавиши ESC. Проверялось на Windows 2000 professional eng, Delphi 5, Delphi 7

ТИПОВЫЕ РЕШЕНИЯ

Описанный эффект проявляется в том случае, если при создании формы TButton создается перед TDBLookupComboBox, таким образом решение проблемы - переместить описание TButton в DFM файле после описания TDBLookupComboBox.

Скачать тест StoneTest_28.zip (1.5k)

КОММЕНТАРИЙ

Эффект имеет место быть. Что интересно, с обычным TComboBox и TDBComboBox такого не проиходит.

Проблема заключается в том, что при размещении TButton с свойством Cancel установлено в True, а перед ним расположен TDBLookupComboBox в порядкеdesign-отдельности формы, нажатие клавиши ESC не закрывает список выбора комбобокса.

Предложенная автором решением является перестановкой компонентов в файле DFM, чтобы TDBLookupComboBox был определён после TButton. Этоapproach seems to resolve the issue on Windows 2000 professional eng with Delphi 5 and Delphi 7.

Интересно отметить, что это проблема не возникает с обычными TComboBox или TDBComboBox.

Вот некоторые дополнительные предложения:

  1. Перестановка компонентов в файле DFM: Как было упомянуто ранее, переставьте компоненты так, чтобы TDBLookupComboBox был определён после TButton. Это должно решить проблему.
  2. Использование другого подхода для закрытия комбобокса: Вместо зависимости от стандартного поведения клавиши ESC, рассмотрите использование.custom solution для закрытия списка выбора, когда это необходимо. Например, вы можете использовать событие Click кнопки для программного закрытия комбобокса.
  3. Тестирование на других платформах и версиях Delphi: Хотя проблема была обнаружена на Windows 2000 professional eng with Delphi 5 and Delphi 7, важно тестировать решение на других платформах и версиях Delphi, чтобы убедиться, что это не является специфичным для конкретной комбинации этих факторов.
  4. Рассмотрите использование более recent version of Delphi: Если это возможно, рассмотрите обновление до newer version of Delphi, потому что старые версии могут иметь известные проблемы или ошибки, которые были решены в последних релизах.

В целом, перестановка компонентов в файле DFM seems to be эффективным решением этой проблемы. Однако важно тестировать и проверять решение на различных платформах и версиях Delphi перед разверткой кода в производственной среде.

Компонент TDBLookupComboBox может не закрываться при нажатии клавиши ESC на Windows, если он находится после TButton со свойством Cancel, равным True, в файле DFM.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Ошибки БД ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:32:55/0.0054399967193604/1