Thema: Delphi Thread ausführen

Einzelnen Beitrag anzeigen

Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Thread ausführen

  Alt 9. Nov 2007, 16:23
Hallo,

ich beschäftige mich gerade mit Threads. Ich habe mir eine kleine Routine geschrieben, die ich ausführen lassen möchte. Da diese Routine ein bisschen Zeit in ansproch nimmt, habe ich mir überlegt das ganze in ein Thread zu packen. Leider funktioniert das nur manchmal. Könnt ihr mal draufschauen?

Vielen Dank im vorraus.

Delphi-Quellcode:
unit UThreads;

interface

uses
  Classes, ExtCtrls, Windows;

type
  TFarbe = record
    R : Integer;
    G : Integer;
    B : Integer;
  end;

type
  TMyThread = class (TThread)
  private
    FImage : TImage;
  public

  protected
    procedure Execute(); override;
  published
    property Image : TImage Read FImage Write FImage;
  end;

implementation

procedure TMyThread.Execute();
  var x, y : Integer;
      Farbe : TFarbe;
begin
  for x:=0 to FImage.Width do
    begin
      for y:=0 to FImage.Height do
        begin
          Randomize;
          with Farbe do
            begin
              R:=Random(255);
              G:=Random(255);
              B:=Random(255);

              FImage.Canvas.Pixels[x, y]:=RGB(R, G, B);
            end;
        end;
    end;
end;

end.
Ausruf:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
  var MyThread1 : TMyThread;
      MyThread2 : TMyThread;
      MyThread3 : TMyThread;
      MyThread4 : TMyThread;
begin
  MyThread1:=TMyThread.Create(True);
  MyThread2:=TMyThread.Create(True);
  MyThread3:=TMyThread.Create(True);
  MyThread4:=TMyThread.Create(True);
  MyThread1.Image:=Image1;
  MyThread2.Image:=Image2;
  MyThread3.Image:=Image3;
  MyThread4.Image:=Image4;
  MyThread1.Resume;
  MyThread2.Resume;
  MyThread3.Resume;
  MyThread4.Resume;
end;
  Mit Zitat antworten Zitat