![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение текста из DBGrid
HPR © (2004-05-06 11:20:00)Есть такая проблема. Имеем обычный DBGrid. Пользователь вводит текст в одном из полей, но запись в Table еще не создается (она создастся после Post). Таким образом этот текст я не могу получить с помощью FieldByName.. А он мне нужен. Как быть?
HPR (2004-05-06 13:35:00) [1]Большое спасибо всем! Теперь знаю в каких направлениях копать
Vlad (2004-05-06 13:11:00) [2]Вот, примерно так:
На событие OnKeyUp грида (KeyDown немного не подходит)
if TMyGrid(Sender).InplaceEditor<>nil then showmessage(TMyGrid(Sender).InplaceEditor.Text);
где TMyGrid = class(TDBGrid)
Johnmen (2004-05-06 13:03:00) [3]>Vlad © (06.05.04 12:53) [14]
Тогда можно KeyDown у грида ловить, а там и анализ...
Vlad (2004-05-06 12:53:00) [4]
> Johnmen © (06.05.04 12:44) [13]
Подозреваю, все не так просто. Человеку нужен аналог OnChange в TEdit, т.е. нужно еще сообщения ловить.
Johnmen (2004-05-06 12:44:00) [5]>HPR ©
Верно сказал Anatoly Podgoretsky © (06.05.04 11:40) [4]
MyDBGrid(DBGrid1).InplaceEditor.EditText (или Text)
гдеtype MyDBGrid = class(TDBGrid);
но первым делом проверяем
if Assigned(MyDBGrid(DBGrid1).InplaceEditor) then ...
Vlad (2004-05-06 12:41:00) [6]
> Inplace Editor это компонент такой?
см. справку TInplaceEdit
> А Reindeer Moss Eater это что такое и с чем его едят?
Его не едят, он сам ест (он же Eater :-))
Vovchik_A (2004-05-06 12:24:00) [7]2HPR © (06.05.04 12:23) [10]
О-о-о-оо, брат ... RTFM тогда...
HPR (2004-05-06 12:23:00) [8]To Vovchik_A: в том то и дело, что не хочу! :) Мне нужен именно грид. А Reindeer Moss Eater это что такое и с чем его едят?
To Anatoly Podgoretsky: Inplace Editor это компонент такой?
Отстал от жизни...
Vlad (2004-05-06 12:22:00) [9]
> Vovchik_A © (06.05.04 12:17) [8]
Это я как вариант предложил.
А в общем случае конечно нужно ловить нажатия клавиш в InplaceEditor, но для этого нужно писать наследника.
Vovchik_A (2004-05-06 12:17:00) [10]2Vlad © (06.05.04 12:02) [7]
Ну начнем с того, что мы не знаем хочет ли он запрещать ввод из грида. Предлагаю автора подождать.
Vlad (2004-05-06 12:02:00) [11]
> Vovchik_A © (06.05.04 11:55) [6]
Да нет, тут смотреть надо Anatoly Podgoretsky © (06.05.04 11:40) [4]
а так же в сторону наследника TDBGrid
Или еще как вариант: запретить ввод через грид, а вводить через TDBEdit, там можно использовать OnChange
Vovchik_A (2004-05-06 11:55:00) [12]Смотри Reindeer Moss Eater © (06.05.04 11:22) [1]
DenK_vrtz (2004-05-06 11:45:00) [13]для контроля ввода данных, как вариант, сделать отдельную форму с DBEdit'ами и кнопками "Сохранить" "Отменить"
Anatoly Podgoretsky (2004-05-06 11:40:00) [14]Копать придется в сторону Inplace Editor
VAleksey (2004-05-06 11:38:00) [15]именно FieldByName
или через события TField
HPR (2004-05-06 11:35:00) [16]Не, мне нужен текст по мере ввода его пользователем. У TEdit я к примеру получаю его в событии OnChange
Reindeer Moss Eater (2004-05-06 11:22:00) [17]BeforePost у датасета