Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.04;
Скачать: CL | DM;

Вниз

TDBGrid   Найти похожие ветки 

 
Vlad   (2003-08-14 11:58) [40]

2 Reindeer Moss Eater ©
Если прервал редактирование то Close и не будет.
Читай внимательнее.
Ладно, по-другому:
If (key=#27) and not(gdFocused in DBGrid.State) then Close


 
Mark   (2003-08-14 12:49) [41]

Ты сделай, а потом говорить будешь.
Мы ещё не закрыли окно, но событие OnClose наступило. Именно там всегда и отлавливается. И ты не прерываешь редактирование таблицы - достаточно посмотреть, что она действительно будет находиться в состоянии dsEdit.
Хотел помочь, а ты, я вижу, даже не проверяешь подсказку... Ну, извини...


 
Mark   (2003-08-14 12:55) [42]

Так ты заперти закрытие формы, коль не хочешь!
Там же есть
Action:=caNone
The form is not allowed to close, so nothing happens.


 
roottim   (2003-08-14 13:19) [43]

вот вариант твоей задачи:
кидаешь на форму TTimer
в дизайне:
.Name = "Timer1"
.Interval = 500;
.Enabled := False;

кликаем по нему дважды и пишем обработчик

procedure TmyForm.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
end;


далее у формы проперти KeyPreview = True;
и пишем обработчик на key_down для формы

procedure TMyForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_ESCAPE) then
begin
if Timer1.Enabled then
begin
Timer1.Enabled := not Timer1.Enabled;
Self.Close;
end
else
Timer1.Enabled := True;
end;
end;


вот теперь если ты нажмеш один раз... Esc то если DataSet редактирование закончится
А если ты двыжды нажмеш на Esc, или подержиш подольше, или один раз (при том что DataSet не в режиме dsEdit) формочка твоя закроется!


 
Mike2 Kouzmine2   (2003-08-14 13:28) [44]

roottim (14.08.03 13:19) [43] Только все это надо было засунуть в отдельный поток.


 
roottim   (2003-08-14 13:36) [45]

2Mike2 Kouzmine2 (14.08.03 13:28) [44]
зачем ?
таимер и так работает в отдельной нитке!


 
Алексей Петухов   (2003-08-14 14:01) [46]

Попробую с TTimer-ом, хотя не до коннца понял.


 
MXA   (2003-08-14 16:28) [47]

Ну вы блин даете! (С)

Предлагаю свою версию:

1. У фоpмы KeyPreview ставим в true;
2. Делаем обработчик:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
case key of
VK_Escape:
if not DBGrid1.EditorMode then Close;
end;
end;


 
roottim   (2003-08-14 17:03) [48]

> Ну вы блин даете! (С)
моя версия универсальна для всех контролов формы... это единственный "+"



Страницы: 1 2 вся ветка

Текущий архив: 2003.09.04;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.066 c
3-10610
Mike2 Kouzmine2
2003-08-13 14:34
2003.09.04
Ошибка при перекачке данных


3-10605
Morfeuse
2003-08-13 11:52
2003.09.04
изменить цвета фона в QuantumGrid


1-10708
pkert
2003-08-20 16:56
2003.09.04
Invalid pointer operation


14-10946
Евгений Николаевич
2003-08-15 08:02
2003.09.04
как поймать невидимку в миранде???


1-10834
Zheks
2003-08-21 16:04
2003.09.04
Переноска файлов с изменением имени файла