Форум: "Базы";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
ВнизСобытие перед вводом Найти похожие ветки
← →
DelphiLexx © (2007-04-25 18:46) [0]У меня есть TFIBDataSet связанный через DataSource c DBGridEh"ом. Меня интересует следующее: Какое возникает событие у DataSet"a или DBGridEh"a при попытке ввести значение в ячейку т.е. до момента когда в ячейке появится курсор ввода.
← →
Виталий Панасенко(дом) (2007-04-25 19:22) [1]а что в этот момент происходит ? по моему, ничего... вот, когда начинаешь набирать что-то на клаве, НД переходит в режим dsEdit и возникает событие BeforeEdit... "огласите весь список, пожалуйста...".. внятней
← →
DelphiLexx © (2007-04-25 19:28) [2]
> а что в этот момент происходит ?
Появляется курсор в ячейке, а мне это не нужно
← →
Виталий Панасенко(дом) (2007-04-25 19:45) [3]Вообще-то, у ГРИДА(и не только :-)) ) есть событие OnEnter(НаВход)... Выруби курсор тут, что мешает
← →
DelphiLexx © (2007-04-26 09:11) [4]
> Вообще-то, у ГРИДА(и не только :-)) ) есть событие OnEnter(НаВход).
> .. Выруби курсор тут, что мешает
Но ведь OnEnter возникает не когда я перемещаюсь по ячейкам, а всего лишь один раз, когда я устанавливаю фокус с какого контрола на грид
← →
ЮЮ © (2007-04-26 10:46) [5]У TDBGrida представлено немного событий, ибо считаетися, что всё что нужно, уже реализовано:
OnCellClick
OnColEnter
OnColExit
OnColumnMoved
OnDrawColumnCell
OnDrawDataCell
OnEditButtonClick
OnTitleClick
Если вопрс связан с
http://delphimaster.net/view/3-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-а).
← →
MsGuns © (2007-04-27 21:55) [6]Нифига не понял: надо запретить редактирование некоторых полей или "не пущать" туда курсор ?
← →
DelphiLexx © (2007-04-28 09:42) [7]
> "не пущать" туда курсор
"не пущать" туда курсор это и есть блокирование редактрования
← →
ЮЮ © (2007-04-28 10:13) [8]> "не пущать" туда курсор это и есть блокирование редактрования
А вдруг ты вошел не для редактирования, а для взятия в буфер содержимого ячейки? А редактирование набора данных происходит при выходе курсора из ячейки. А попытка изменения - при изменении в InpaceEdit-е.
← →
Виталий Панасенко(дом) (2007-04-28 10:22) [9]
> DelphiLexx © (28.04.07 09:42) [7]
>
>
> > "не пущать" туда курсор
>
> "не пущать" туда курсор это и есть блокирование редактрования
Можно просто поле сделать Read-Only. и не парить то, что на Пасху красят
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.045 c