Thema: Delphi Threads

Einzelnen Beitrag anzeigen

Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#4

Re: Threads

  Alt 15. Nov 2004, 23:09
Zitat von glkgereon:
in der hauptanwendung ein label, im thread wir einfach nur eine variable hochgezählt und der hauptthread gibt vor wie groß das delay dazwischen ist
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

type
  TMyThread = class(TThread)
  private
    FLabel: TLabel;
    FCounter: Integer;
    FDelay: Integer;
    procedure UpdateVCL;
  protected
    procedure Execute; override;
  public
    constructor Create(ALabel: TLabel);
    property Delay: Integer read FDelay write FDelay;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

constructor TMyThread.Create(ALabel: TLabel);
begin
  inherited Create(True);
  FCounter := 0;
  FLabel := ALabel;
end;

procedure TMyThread.Execute;
begin
  while (not Self.Terminated) do
  begin
    Inc(FCounter);
    Synchronize(UpdateVCL);
    Sleep(FDelay);
  end;
end;

procedure TMyThread.UpdateVCL;
begin
  FLabel.Caption := IntToStr(FCounter);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with TMyThread.Create(Label1) do
  begin
    Delay := 1000;
    Resume;
  end;
end;

end.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat