![]() |
wie kann man Canvas-Grafiken refreshen
Hallo,
programmiere gerade ein kleines Spiel, wobei ich Canvasbefehle fürs Zeichen nutze. Wenn man ein anderes Fenster über die Grafik schiebt, verschwindet diese. Nur Buttons u.ä. Objekte werden neu gezeichnet. Ist das eine Eigenschaft des Fensters? Habe schon überlegt, das ganze in eine Bipmap zu zeichnen und diese dann z.B. bei "OnActivate" wieder zu zeichnen, aber das geht nicht. Hat jemand eine Idee? Danke |
Re: wie kann man Canvas-Grafiken refreshen
Zeichne das ganze einfach in OnPaint neu. :wink:
|
Re: wie kann man Canvas-Grafiken refreshen
danke fürs schnelle Antworten.
Aber bin ein Neuling und brauche da noch etwas mehr Schützenhilfe ;-) Was ist OnPaint? |
Re: wie kann man Canvas-Grafiken refreshen
Oder nimm ein Image.
Das zeichnet sich selber wieder neu. Nimm zum Zeichnen:
Delphi-Quellcode:
und zum löschen des ganzen Bildes:
Image.Canvas. ...
Delphi-Quellcode:
//Edit: Fehler korrigiert
Image.Picture.Bitmap.Assign(NIL);
|
Re: wie kann man Canvas-Grafiken refreshen
aah, jetzt klappts.
Einfach eine Refreshprodezur beim Ereignis "OnPaint" eintragen und es geht. Danke nochmal Die nächste Frage kommt bestimmt... |
Re: wie kann man Canvas-Grafiken refreshen
an halinchen:
was muß ich alles initialisieren bei Verwendung von Image? Beim Create verlangt er nach mehr Parametern... Danke im Voraus |
Re: wie kann man Canvas-Grafiken refreshen
Wenn du es zur Entwurfszeit auf die Form ziehst "createt" Delphi das von selbst.
Passe dann die Größe an. Naja, und der Rest ist das selbe, als wenn du direkt auf die Form zeichnest. Wie gesagt: Zitat:
|
Re: wie kann man Canvas-Grafiken refreshen
Image.Bitmap.Assign(NIL);
kennt mein Delphi nicht ... unbekannter Bezeichner. Es steht auch nicht in meiner Referenz. Ansonsten klappt es prima. |
Re: wie kann man Canvas-Grafiken refreshen
sorry
Delphi-Quellcode:
Image1.Picture.Bitmap.Assign(NIL);
|
Re: wie kann man Canvas-Grafiken refreshen
ok, das geht.
Jetzt taucht aber das nächste Problem auf. Wenn ich mit der Maus über das Image gehe, werden keine MouseOver Ereignisse mehr ausgeführt bzw. wahrscheinlich auch die Koordinaten des Mauszeigers nicht übertragen. Ich berechne über die Mauszeigerposition das jeweilige Feld auf dem Spielfeld. Fand die Image-Variante eigentlich eleganter aber wahrscheinlich werde ich nun doch über OnPaint refreshen. schönen Abend noch |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:42 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