Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.53 MB
Время: 0.019 c
7-11009
AdMiRaL
2003-06-22 20:55
2003.09.04
Integracija s SHELL


7-10996
AndrewVolkov
2003-06-20 10:48
2003.09.04
Com считывание


3-10655
Жук
2003-08-11 10:18
2003.09.04
Интерфейс для


1-10719
.alex
2003-08-17 18:28
2003.09.04
Пара вопросов по FastReport?


3-10561
Lamer_of_Delphi
2003-08-15 11:15
2003.09.04
ODBC Driver




   Наверх