![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Событие перед вводом
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... "огласите весь список, пожалуйста...".. внятней