![]() |
Re: Images flakern... :(
Du fügst in der Form ein:
Delphi-Quellcode:
OnCreate:
MeinBild : TBitmap;
Delphi-Quellcode:
OnDestroy:
MeinBild := TBitmap.Create;
MeinBild.LoadFromFile('FileName');
Delphi-Quellcode:
MeinBild.Free
Entweder du bleibst bei deinen Images oder ich würde dir folgende Methode empfehlen:
Delphi-Quellcode:
Du müsstest jetzt den X und Y wert berechnen und dann zeichnest du.
Form.Canvas.Draw(X,Y,MeinBild)
vor dem Zeichnen solltest du
Delphi-Quellcode:
aufrufen.
Form.Refresh
Bei Images:
Delphi-Quellcode:
Image.Picture.Bitmap.Assign(MeinBild);
|
Re: Images flakern... :(
Wenn es sich um viele "Schneeflocken" handelt, würde ich diese in der Zeichen-Routine zunächst auf ein neu erzeugtes Bitmap zeichnen und dieses wiederum auf das Canvas zeichnen. Sollte die ganze Geshcichte noch etwas "ruckelfreier" machen.
|
Re: Images flakern... :(
hmm.. ich werd das mal versuchen..
Vielen Dank für deine Bemühungen! Heute komm ich bloß leider nicht mehr an's Delhpi.. sollte ich aber weitere probs haben meld ich mich, versprochen ;) |
Re: Images flakern... :(
Ich würde alle BitMap in einer Liste beim Start des Programm laden.
Jetzt habe ich einen TBitMap als Buffer, das ist das Spiel Feld. Ersteinmal unsichtbar, um es sichtbar zu machen musst du dich entscheiden Zwischen einen Panel, einer Paintbox oder einem TImage. Meiner Erfahrung nach ist das Panel zum Zeichnen am schnellsten, warum weiß ich nicht. Jetzt kannst du z.b. mit Panel1.Canvas.Draw(0,0,Buffer) die gesammte Grafik kopieren. Wenn du nur Stückweise Kopieren möchtest, solltest du CopyRect von TCanvas nehmen oder bitblt die Winapi Variante.... Was davon schneller ist kann ich dir nicht sagen, es heißt das bitblt schneller ist als copyRect, aber letztendlich ist copyrect mit Sicherheit auch nix anders als bitblt. |
Re: Images flakern... :(
Panel.Canvas? :gruebel:
|
Re: Images flakern... :(
ja, unter Lazarus geht das, unter Delphi nicht ?
dann musst du eine eigene Klasse erstellen die du vom Panel ableitests und dort die Paint Methode Überschreiben, dann sollte es auch gehen. Unter Lazarus ist das zeichnen auf ein Panel am schnellsten, abgehen von SDL oder so...... das weiß ich nicht. (Ich habe aber gesehen, das unter Delphi nicht alle Komponenten ein public canvas haben, das ist evlt. auch nur unter Lazarus so.... dort kann ich sogar das canvas von der TScrollbox ansprechen, was ich unter Delphi nicht kann(wie ich vor einigen Tagen gesehen habe)). |
Re: Images flakern... :(
Es gibt speciell gestrickte Panel-Komponenten, die einen Canvas haben. Das Standard-Panel hat keinen veröffentlichten.
|
Re: Images flakern... :(
naja wie gesagt unter Lazarus schon.... Unter Delphi müsste man halt eine eigene Klasse von einem Panel ableiten und gut ist.... Das dürfte das schnellste sein...
|
Re: Images flakern... :(
Naja, gibts dafür nicht die Paintbox ?
|
Re: Images flakern... :(
Die ist leider langsamer als ein Panel, habe ich bemerkt... aber für die meisten zwecke reicht die schon aus.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz