Hallo Marcel,
bei der Verwendung einer PaintBox ist zu beachten, daß alle Zeichenoperationen in der Behandlungsroutine für
TPaintBox.OnPaint durchgeführt werden. Wenn du die eigentlichen Zeichenbefehle aus der Methode
Redraw in diese Behandlungsroutine verschiebst, kannst du auf die Aufrufe
.BringToFront verzichten:
Delphi-Quellcode:
procedure TFrmMain.PaintBoxPaint(Sender: TObject);
begin
BitBlt(PaintBox.Canvas.Handle, 0, 0, Bitmap.Width, Bitmap.Height, Bitmap.Canvas.Handle, 0, 0, SrcCopy);
bitmap.canvas.Draw(0,0,image1.Picture.Graphic);
end;
procedure tFrmMain.ReDraw;
var R : TRect;
begin
// Neuzeichnen der Paintbox auslösen
PaintBox.Invalidate;
{
// nicht mehr notwendig...
vgrn.bringtofront;
:
hlgw.bringtofront;
}
end;
Ein kleiner Fehler ist mir noch aufgefallen: wenn man die Autos fahren läßt, bevor sie erstellt werden, dann biegen sie an den Ampeln etwas zu früh ab. Ansonsten ist das Programm sehr schön gemacht.
Gruß Hawkeye