Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Прервать перебор записей таблицы по Esc [D5]


desha ©   (2003-01-13 22:55:00) 

Мастера. Такой вопрос.
В цикле перебираются записи таблицы. Нужно все это прервать
по нажатию юзером кнопки (ex. Esc). Можно как-то через
Application, но не могу разобраться...


TTCustomDelphiMaster   (2003-01-13 23:29:00) [1]

var EscPressed: Boolean;

procedure TCargoDayRepForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_ESCAPE then
EscPressed := True;
end;

procedure .....
......
EscPressed := False;
while not (Query1.Eof or EscPressed) do
begin // Цикл перебора записией
.....
Query1.Next;
Application.ProssesMessages; // Смотрим, были ли события
end;
....
end;

У формы поставь KeyPreview = True


MsGuns   (2003-01-13 23:14:00) [2]

procedure Form1.Button1Click(Sender: TObject);
begin
Button1.Tag := 1; // Кнопка нажата
end;

procedure .....
......
while not Query1.Eof do
begin // Цикл перебора записией
.....
Query1.Next;
Application.ProssesMessages; // Смотрим, были ли события
if Button1.Tag>0 then
begin
Button1.Tag := 0;
exit;
end;
end;
....
end;


;)))


Наверх

Титульная страница Поиск, карта сайта Написать письмо