Главная страница
    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.125 c
1-1118082204
Serg!!!!!!!!!!!
2005-06-06 22:23
2005.06.29
Редактирование


14-1117561140
Juice
2005-05-31 21:39
2005.06.29
D8, D2005. Правильный выбор?


14-1117267775
vajo
2005-05-28 12:09
2005.06.29
монтаж сети


3-1116561691
Ландух
2005-05-20 08:01
2005.06.29
Как обновить данные удаленной БД


6-1111569342
TankMan
2005-03-23 12:15
2005.06.29
Не понимаю - почему ошибка при копировании через ClientSocket?:(





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский