Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.08.2017, 18:29
Аватар для Guaho
Guaho Guaho вне форума
Начинающий
 
Регистрация: 27.08.2017
Сообщения: 173
Версия Delphi: Delphi7
Репутация: 10
По умолчанию Оперативное получение значения из ячейки грида

Всем привет!
Уже немало лет я занимаюсь разработкой баз данных (на любительском уровне, я - самоучка). И все эти годы шли поиски оптимального варианта интерфейса БД. Казалось бы, в вопросе, как вводить/редактировать данные, всё просто - либо прямо в гриде, либо на отдельной форме. Последний вариант, безусловно, удобен наибольшими возможностями. В то же время ввод данных прямо в гриде визуально очень изящен, и - главное - сильно сокращает код (то есть усилия и время работы программиста) по сравнению с вариантом с дополнительной формой.
Итак, исходные данные: ввод новых данных (Insert) прямо в гриде в поле, НЕ допускающее повторяющихся значений.
Задача: оперативный (при каждом OnKeyDown или KeyPress) контроль вводимых в ячейку грида данных с выдачей пользователю оповещения (не-модального, разумеется) о том, что такая запись уже есть в БД.
И вот тут я сталкиваюсь с проблемой - как получить вводимое текстовое значение из ячейки грида. Способы, предлагаемые в Инете (grid.SelectedField.AsString, или queryMyField.AsString), не подходят - вводимое значение становится доступным только после ухода из редактируемого поля и передаче фокуса ввода в соседнее поле. А так, чтобы при каждом нажатии на кнопки клавиатуры, - не выходит никак. Задумка такая: при переходе в режим вставки/редактирования активируется дополнительная панель под основным гридом, а там - дополнительный грид в режиме ReadOnly, данные в котором фильтруются при каждом изменении вводимого пользователем значения в основном гриде. Или - как вариант - можно менять цвет грида в момент, когда набранная пользователем комбинация символов совпадёт с уже имеющейся в БД в данном поле.
Вариант, когда оповещение выдаётся после того как значение в уникальном поле уже введено полностью, меня не устраивает. Это сделать несложно, только это не будет удобно (на мой придирчивый взгляд к идеологии интерфейса).
И вот собственно вопрос. Можно ли каким-то образом получить вводимый в ячейку грида текст, например, через свойство Canvas? Повторюсь, я самоучка, и в очень многих вопросах просто дуб дубом, в этом уж точно. Нигде не могу найти ответ на свой вопрос. Может кто подскажет, как быть? Использую грид EhLib 4.3.21.

Последний раз редактировалось Guaho, 27.08.2017 в 18:32.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:08.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter