Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Событие перед вводом


DelphiLexx ©   (2007-04-25 18:46:00) 

У меня есть TFIBDataSet связанный через DataSource c DBGridEh'ом. Меня интересует следующее: Какое возникает событие у DataSet'a или DBGridEh'a при попытке ввести значение в ячейку т.е. до момента когда в ячейке появится курсор ввода.


Виталий Панасенко(дом)   (2007-04-28 10:22:00) [1]


> DelphiLexx ©   (28.04.07 09:42) [7]
>
>
> > "не пущать" туда курсор
>
> "не пущать" туда курсор это и есть блокирование редактрования

Можно просто поле сделать Read-Only. и не парить то, что на Пасху красят


ЮЮ   (2007-04-28 10:13:00) [2]

> "не пущать" туда курсор это и есть блокирование редактрования

А вдруг ты вошел не для редактирования, а для взятия в буфер содержимого ячейки? А редактирование набора данных происходит при выходе курсора из ячейки. А попытка изменения - при изменении в InpaceEdit-е.


DelphiLexx   (2007-04-28 09:42:00) [3]


> "не пущать" туда курсор

"не пущать" туда курсор это и есть блокирование редактрования


MsGuns   (2007-04-27 21:55:00) [4]

Нифига не понял: надо запретить редактирование некоторых полей или "не пущать" туда курсор ?


ЮЮ   (2007-04-26 10:46:00) [5]

У TDBGrida представлено немного событий, ибо считаетися, что всё что нужно, уже реализовано:
OnCellClick
OnColEnter
OnColExit
OnColumnMoved
OnDrawColumnCell
OnDrawDataCell
OnEditButtonClick
OnTitleClick

Если вопрс связан с
http://www.delphimaster.ru/cgi-bin/forum.pl?n=1&id=1177508561
и ты считаешь, что данный код замедляет скроллирование в гриде (именно в гриде. При программном сколлинге такой обработчик следует обnillять):

procedure TCustomDBGrid.SetOptions(Value: TDBGridOptions);
const
 LayoutOptions = [dgEditing, dgAlwaysShowEditor, dgTitles, dgIndicator,
   dgColLines, dgRowLines, dgRowSelect, dgAlwaysShowSelection];
var
 NewGridOptions: TGridOptions;
 ChangedOptions: TDBGridOptions;
begin
 if FOptions Value then
 begin
   NewGridOptions := [];
   if dgColLines in Value then
     NewGridOptions := NewGridOptions + [goFixedVertLine, goVertLine];
   if dgRowLines in Value then
     NewGridOptions := NewGridOptions + [goFixedHorzLine, goHorzLine];
   if dgColumnResize in Value then
     NewGridOptions := NewGridOptions + [goColSizing, goColMoving];
   if dgTabs in Value then Include(NewGridOptions, goTabs);
   if dgRowSelect in Value then
   begin
     Include(NewGridOptions, goRowSelect);
     Exclude(Value, dgAlwaysShowEditor);
     Exclude(Value, dgEditing);
   end;
   if dgEditing in Value then Include(NewGridOptions, goEditing);
   if dgAlwaysShowEditor in Value then Include(NewGridOptions, goAlwaysShowEditor);
   inherited Options := NewGridOptions;
   if dgMultiSelect in (FOptions - Value) then FBookmarks.Clear;
   ChangedOptions := (FOptions + Value) - (FOptions * Value);
   FOptions := Value;
   if ChangedOptions * LayoutOptions [] then LayoutChanged;
 end;
end;

Неужели без этого обработчика тормозов нет, а с ним - есть?
Попробуй менять ReadOnly (у Grida или DataSet-а).


DelphiLexx   (2007-04-26 09:11:00) [6]


> Вообще-то, у ГРИДА(и не только :-)) ) есть событие OnEnter(НаВход).
> .. Выруби курсор тут, что мешает

Но ведь OnEnter возникает не когда я перемещаюсь по ячейкам, а всего лишь один раз, когда я устанавливаю фокус с какого контрола на грид


Виталий Панасенко(дом)   (2007-04-25 19:45:00) [7]

Вообще-то, у ГРИДА(и не только :-)) ) есть событие OnEnter(НаВход)... Выруби курсор тут, что мешает


DelphiLexx   (2007-04-25 19:28:00) [8]


> а что в этот момент происходит ?

Появляется курсор в ячейке, а мне это не нужно


Виталий Панасенко(дом)   (2007-04-25 19:22:00) [9]

а что в этот момент происходит ? по моему, ничего... вот, когда начинаешь набирать что-то на клаве, НД переходит в режим dsEdit и возникает событие BeforeEdit... "огласите весь список, пожалуйста...".. внятней


Наверх

Титульная страница Поиск, карта сайта Написать письмо