Wenn es nur darum geht nach einem längerem Zeichenprozess das Bild in der MainForm darzustellen könnte man das auch so machen:
Delphi-Quellcode:
constructor TImageRenderer.Create;
begin
inherited Create;
fBmp := TBitmap.Create;
fBmp.SetSize(100, 100);
fBmp.PixelFormat := pf24Bit;
end;
destructor TImageRenderer.Destroy;
begin
fBmp.Free;
inherited;
end;
procedure TImageRenderer.Execute;
var
ix: Integer;
iy: Integer;
begin
while Not Terminated
do
begin
fBmp.Canvas.Lock;
for ix := 0
to 99
do
begin
for iy := 0
to 99
do
begin
fBmp.Canvas.Pixels[ix,iy] :=
RGB(Random(256),Random(256),Random(256));
end;
Sleep(5);
end;
fBmp.Canvas.UnLock;
Synchronize(PaintBmp);
end;
end;
procedure TImageRenderer.PaintBmp;
begin
if assigned(fOnPaint)
then
begin
fOnPaint(fBmp);
end;
end;
Angehängt ist ein kleines Projekt mit dem das läuft...