Перейти по Enter на следующее поле в TDBGridDelphi , Компоненты и Классы , TDBGridПерейти по Enter на следующее поле в TDBGrid
Оформил: DeeCo procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin if DBGrid1.Columns.Grid.SelectedIndex < DBGrid1.Columns.Count - 1 then DBGrid1.Columns[DBGrid1.Columns.grid.SelectedIndex + 1].Field.FocusControl else begin Table1.Next; DBGrid1.Columns[0].field.FocusControl; end; end; end; Here's the translation of the text into Russian: Это обработчик события для компонента TDBGrid, именуемого DBGrid1. Событие тригерируется при нажатии клавиши, когда grid имеет фокус. Код проверяет, является ли нажатой клавишей Enter (#13). Если это так, он выполняет разные действия в зависимости от того, является ли выбранной колонкой не последней в grid:
Код использует свойство SelectedIndex column grid'а для определения, которая колонка выбрана в данный момент. Он также использует свойство Count для проверки, есть ли более колонок после текущей. Вот альтернативное решение, которое может быть более читаемым и поддерживаемым:
В этом коде я заменил DBGrid1.Columns.Grid.SelectedIndex на DBGrid1.FocusedColumn, что является более прямым способом получения индекса текущей фокусированной колонки. Я также удалил неиспользуемый блок begin...end вокруг заявления о фокусе. Обратите внимание, что я предполагаю, что Table1 - это компонент TTable или эквивалентный источник данных для grid. Если это не так, вам нужно будет адаптировать код соответствующим образом. В статье описывается решение проблемы перехода к следующему полю в TDBGrid при нажатии Enter, включая обработку случаев, когда это последнее поле и необходимо перейти к началу списка. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |