Potreboval by som pomôcť s ukončením procesu výpočtu. Jedná sa mi o zastavenie činnosti nejakej dlhotrvajúcej operácie (výpočtu) ktorá by trvala velmi dlaho alebo proste užívatel potrebuje náhle ukončiť činnosť.
Potreboval by som teda zastaviť program počas výpočtu klasickým stlačením tlačitka "Zastaviť".
Na ktiváciu okna je príkaz: Form1.Refresh; ale jeho všetky funkcie teda aj to tlačítko "Zastaviť" sa aktivuje až po ukončení procesu čo je chyba.
Nevie niekto ako alebo akým príkazom by som tyvoril end proces?
Možno sa to bude dať pomocou Application.xxx; len neviem ako mať stále počas výpočtu aktívne to tlačítko "zastaviť".
Ak som pochopil správne, tak: Nech sa procedúra Dlhy_vypocet neustále opakuje, pričom v nej sú výpočty náročne na čas.
Kód:
var ukoncitVypocet: boolean = false;
procedure Dlhy_vypocet; begin
repeat ... (tu su potrebne vypocty) ...
if (ukoncitVypocet) then Exit; Application.ProcessMessages;
until koniec;
end;
procedure TForm1.Button1Click(Sender: TObject); begin
ukoncitVypocet:= true;
end;
Ak sa stlačí tlačidlo Button1, tak v tele výpočtu sa podmienka if vyhodnotí a teda funkcia Exit okamžite ukončí procedúru Dlhy_vypocet.
(je nutné, aby v danom výpočte bola pridaná aj funkcia Application.ProcessMessages, ktorá príjme prichádzajúce správy, teda aj stlačenie buttonu)
Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre