Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.009 c
1-10725
MetalFan
2003-08-19 15:39
2003.09.04
Нарисовать стрелки...


1-10726
maratvg
2003-08-20 11:21
2003.09.04
использование with


7-10992
maxfiles
2003-06-20 05:24
2003.09.04
Как комп отправить в Sleep mode?


3-10565
nortsov
2003-08-14 20:43
2003.09.04
fb и добавление записей


1-10710
margo3838
2003-08-20 16:39
2003.09.04
Вопрос: Создание и печать графика





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский