Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi wie kann man Canvas-Grafiken refreshen (https://www.delphipraxis.net/89068-wie-kann-man-canvas-grafiken-refreshen.html)

to-wer 25. Mär 2007 16:07


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

jakobwenzel 25. Mär 2007 16:09

Re: wie kann man Canvas-Grafiken refreshen
 
Zeichne das ganze einfach in OnPaint neu. :wink:

to-wer 25. Mär 2007 16:12

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?

halinchen 25. Mär 2007 16:14

Re: wie kann man Canvas-Grafiken refreshen
 
Oder nimm ein Image.
Das zeichnet sich selber wieder neu.

Nimm zum Zeichnen:
Delphi-Quellcode:
Image.Canvas. ...
und zum löschen des ganzen Bildes:
Delphi-Quellcode:
Image.Picture.Bitmap.Assign(NIL);
//Edit: Fehler korrigiert

to-wer 25. Mär 2007 16:17

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...

to-wer 25. Mär 2007 16:51

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

halinchen 25. Mär 2007 17:02

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:

Zitat von halinchen
Nimm zum Zeichnen:
Delphi-Quellcode:
Image.Canvas. ...
und zum löschen des ganzen Bildes:
Delphi-Quellcode:
Image.Bitmap.Assign(NIL);


to-wer 25. Mär 2007 18:34

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.

halinchen 25. Mär 2007 19:16

Re: wie kann man Canvas-Grafiken refreshen
 
sorry
Delphi-Quellcode:
Image1.Picture.Bitmap.Assign(NIL);

to-wer 25. Mär 2007 21:16

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 19:51 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf