Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Вниз

Как отловить событие возникающее при редактировании в гриде   Найти похожие ветки 

 
Layner ©   (2005-05-15 14:32) [0]

определенной колонки? Т.е. BeforeEdit в ADOQuery не подойдет, т.к. тут любая ячейка может "просигналить". Это нужно для того, что бы когда юзер кликнет на это поле, появляется форма ввода значения по маске, и при закрывании ее это значние ложится в эту ячейку. Я уже это вообще то реализовал в EhLib, по событию в колонке OnChange, да некрасиво получается, сначала "входить" в редактирование, а потом нажимать любую клавишу... Заранее благодарю.


 
Desdechado ©   (2005-05-15 17:51) [1]

А зачем отдельная форма ввода по маске? У поля есть же свойства, которые отвечают за форматирование ввода...


 
Layner ©   (2005-05-15 18:59) [2]

Да, маска сложная, встроенной не обойтись, поэтому пришлось делать внешнюю.


 
ANB ©   (2005-05-16 09:07) [3]

Имхо, OnClick и OnKeyDown. Я так делал.


 
msguns ©   (2005-05-16 09:16) [4]

Grid.Column.OnEnter/OnExit


 
msguns ©   (2005-05-16 09:19) [5]

Пардон,
TDBGrid.OnColEnter/OnColExit


 
Max Zyuzin ©   (2005-05-16 09:36) [6]

>Layner ©   (15.05.05 14:32)  
Может лучше редактировать всю запись целиком? Вынес пару кнопочек отдельно от Grid нажал - все что надо поправил, принял... А Grid вообще оставить ReadOnly


 
msguns ©   (2005-05-16 09:47) [7]

Я еще делал так:
1. Грид не редактируемый (у меня еще и датасет был не редактируемый)
2. По кнопке динамически рисуется панель по высоте строки грида, которая заполняется контролами типа TEdit, по ширине точно совпадающими с широиной соотв.колонки грида.
Панель позиционируется точно на месте редактируемой строки и а ежиты переносится содержимое полей НД - при редактировании.
Либо под активной записью с очитской эдитов - при добавлении
Т.е. Имитировалось редактирование в гриде.
3. Гриду Enable := false, чтоб узер не мог кликать по нему, не завершив ввод-редактирование
4. По событию OnExit панели (либо по спец.кнопке на Гл.панели в MDI-форме) проверка введенных данных и, если все Ok, то UPDATE/INSERT, иначе - сообщение об ошибке (ShowMessage или в статусбаре Гл.формы MDI), фокус-в контрол с ошибкой и SelectedAll

Динамическое создание панели, разметка "под грид" и заполнение контролов в процедуре, текст которой при желании могу выложить.


 
-=XP=- ©   (2005-05-16 10:12) [8]

По кнопке динамически рисуется панель по высоте строки грида, которая заполняется контролами типа TEdit, по ширине точно совпадающими с широиной соотв.колонки грида.

DBCtrlGrid?


 
msguns ©   (2005-05-16 10:25) [9]

>-=XP=- ©   (16.05.05 10:12) [8]
>DBCtrlGrid?

Нет, нафиг он нужен, если редактируется одна запись ? Кроме того, НД может быть не редактируемым.

Минус у данной технологии только в том, что грид должен полностью умещаться на экране (нет гориз.скроллинга).


 
Layner ©   (2005-05-16 10:48) [10]

О, спасибо msguns за помощь, буду пробовать, на счет не редактируемости Grid, можно, да писать больше, у меня если человек кликнул на поле, вызывается модальное окошко (MDI приложение тоже), и пока его не закроешь, т.е. не введешь текст по маске, форму не закрыть. Вроде все удобно. Сейчас вот и с полем доделаю.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.061 c
1-1117785562
Frozzen
2005-06-03 11:59
2005.06.29
TChart, шкала Х - дата


1-1117894004
Motion
2005-06-04 18:06
2005.06.29
Объявление предела массива


14-1117814291
Новичоккк
2005-06-03 19:58
2005.06.29
Delphi 7 vs Delphi 8 vs Delphi 2005


4-1115131189
Misha aka Programmer
2005-05-03 18:39
2005.06.29
Проблема с окнами


1-1118060645
Goga
2005-06-06 16:24
2005.06.29
Доступ к реестру из службы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский