Главная страница
    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.042 c
1-1117621977
Gek1
2005-06-01 14:32
2005.06.29
Зависание программы


14-1117954988
lookin
2005-06-05 11:03
2005.06.29
Вот людям делать нечего...


4-1114259443
Леший
2005-04-23 16:30
2005.06.29
Прозрачная область на форме


3-1116318431
atruhin
2005-05-17 12:27
2005.06.29
Как подсчитать кол-во уникальных значений поля с учетом NULL


3-1115878600
leonidus
2005-05-12 10:16
2005.06.29
Глюк базы dBase если поле пустое





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