HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Több szálú alkalmazás készítése a külön szál megszakítási lehetőségével


Példaprogram letöltése

4029 bájt

Mellékelt alkalmazásunkban készítünk egy olyan szálat, mely folyamatosan fut és biztosítjuk a felhasználó számára annak lehetőségét, hogy ennek a szálnak a futását bármikor megszakíthassa.

Létrehozunk egy új osztályt a TThread-ből származtatva, melyben felülírjuk az Execute eljárást és létrehozunk egy IncreaseNumber eljárást, mely egy számlálót folyamatosan növel és ennek aktuális értékét a Form-on lévő Label komponensen megjeleníti.
  TThreadTest = class(TThread)
  protected
    constructor Create;
    procedure Execute; override;
    procedure IncreaseNumber;
  end;
Az FCanceled logikai típusú változónak a szál létrehozása előtt hamis értéket adunk, majd amikor a változó igaz értéket kap, akkor kell a szál futását megszakítani. Ezt követően létrehozzuk a szálat.
procedure TForm1.Button1Click(Sender: TObject);
begin
  FCanceled:=false;
  TThreadTest.Create;
  Button1.Enabled:=false;
end;
Az FCanceled változó a második gomb lenyomásakor kap igaz értéket, így a felhasználó bármikor megszakíthatja a szál futását.
procedure TForm1.Button2Click(Sender: TObject);
begin
  FCanceled:=true;
end;
Az újonnan létrehozott szálban elindítunk egy While ciklust, mely addig fut, amíg az FCanceled változó értéke nem vált igazra. Amíg ez nem történik meg, addig a Synchronize eljáráson keresztül folyamatosan meghívjuk az IncreaseNumber függvényünket.
procedure TThreadTest.Execute;
begin
  with Form1 do begin
    while not FCanceled do begin
      Synchronize(IncreaseNumber);
    end;
  end;
end;
Ez a függvény a Form-on lévő Label komponens értékét minden egyes hívásakor eggyel növeli.
procedure TThreadTest.IncreaseNumber;
begin
  with Form1 do begin
    Label1.Caption:=IntToStr(StrToInt(Label1.Caption)+1);
    Label1.Update;
  end;
end;

Cikksorozat

#IDKategóriaCikk címeSorozat
3047WindowsAz XML bemutatása1. rész
3059WindowsAz XML bemutatása2. rész
3068WindowsAz XML bemutatása3. rész
3077WindowsAz XML bemutatása - deklarációk4. rész
3086WindowsAz XML bemutatása - MSXML, XSLT5. rész
3094WindowsAz XML bemutatása - DTD6. rész
3105WindowsXML adatok megjelenítése Excel-ben7. rész
3114WindowsDokumentum hivatkozások az XML-ben8. rész
3123WindowsXML adattípusok9. rész
3132WindowsXML adatok HTML oldalakon10. rész
3141WindowsXML Notepad11. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 569. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |