Форум: "Базы";
Текущий архив: 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.125 c