Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
9-1111255090
Кирилл
2005-03-19 20:58
2005.06.29
GLScene


3-1116497115
Phoenix9000
2005-05-19 14:05
2005.06.29
Импорт данных из Access в Excel. Unaccessible Value


1-1118260453
Gopher
2005-06-08 23:54
2005.06.29
Синтаксис


3-1116145372
_e_u_
2005-05-15 12:22
2005.06.29
пропал текст из ДБгрида


3-1116306936
GydruS
2005-05-17 09:15
2005.06.29
Уважаемые мастера, почему падает БД Paradax с сообщением "Corr...