eclipse
Пользователь
Как сделать чтобы в процессе выполнения некоторых действий по нужному событию вышло окно (как создать новое окно я знаю) , но следующие действия дальше не выполнялись пока в новом окне не будет дан ответ?
Делаю примерно так:
procedure TForm1.Delay(ms: longint);// собственно это аналогично функции sleep;
var TheTime: LongInt;
begin
TheTime := GetTickCount + ms;
while GetTickCount<TheTime do Application.ProcessMessages;
end;
....
.....
Form3:= TForm3.Create(Application);
...
Form3.Show;
...
while Form1.lbl1.Caption = 'False' do Form1.Delay(1000); // - Именно этот момент меня и смущает.
В общем всё работает так как нужно! НО один минус... процедура Delay жрёт 50% ресурсов процессора (и то это только потому что у меня 2-х ядерный прцессор), а если использовать функцию sleep, тогда форма тупо замерзает пока не выполнить действие на форме 3. Собственно такая проблема!
Делаю примерно так:
procedure TForm1.Delay(ms: longint);// собственно это аналогично функции sleep;
var TheTime: LongInt;
begin
TheTime := GetTickCount + ms;
while GetTickCount<TheTime do Application.ProcessMessages;
end;
....
.....
Form3:= TForm3.Create(Application);
...
Form3.Show;
...
while Form1.lbl1.Caption = 'False' do Form1.Delay(1000); // - Именно этот момент меня и смущает.
В общем всё работает так как нужно! НО один минус... процедура Delay жрёт 50% ресурсов процессора (и то это только потому что у меня 2-х ядерный прцессор), а если использовать функцию sleep, тогда форма тупо замерзает пока не выполнить действие на форме 3. Собственно такая проблема!