Einzelnen Beitrag anzeigen

Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#7

Re: TFahrzeug - Eine Fahrzeug-Klasse

  Alt 10. Apr 2006, 15:51
Du zeichnest doch momentan alles auf Form.Canvas.

Anstatt das zu machen, musst du eine globale Variable nehmen.

z.B:

Delphi-Quellcode:
var
 fBuffer: TBitmap;
Die musst du natürlich z.B. ihm OnCreate-Ereignis des Formulars initialisieren:

fBuffer := TBitmpa.Create; // nicht vergessen, beim Beenden fBuffer.Free auszuführen! Im OnResize-Ereignis des Formulars muss folgender Code:

Delphi-Quellcode:
fBuffer.Width := Form.Width;
fBuffer.Height := Form.Height;
Nun zeichnest du nicht mehr auf Form.Canvas, sondern änderst alles so um, dass nur noch auf fBuffer.Canvas gezeichnet wird.

Im OnPaint-Ereignis des Formulars:

Delphi-Quellcode:
 Canvas.CopyRect(Rect(0,0,fBuffer.Width,fBuffer.Height), fBuffer.Canvas,
                        Rect(0,0,fBuffer.Width,fBuffer.Height));
Da das OnPaint nicht ständig aufgerufen wird (glaub ich, bin mir grad nicht sicher) müsstest du am Ende des Zeichnens (Roboter auf fBuffer.Canvas) noch folgenden Code ausführen:

Form.Invalidate;
Sascha
  Mit Zitat antworten Zitat