AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi wie kann man Canvas-Grafiken refreshen

wie kann man Canvas-Grafiken refreshen

Ein Thema von to-wer · begonnen am 25. Mär 2007 · letzter Beitrag vom 26. Mär 2007
Antwort Antwort
Seite 1 von 2  1 2   
to-wer

Registriert seit: 25. Mär 2007
29 Beiträge
 
#1

wie kann man Canvas-Grafiken refreshen

  Alt 25. Mär 2007, 16:07
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
  Mit Zitat antworten Zitat
Benutzerbild von jakobwenzel
jakobwenzel

Registriert seit: 31. Aug 2005
Ort: Ingelheim am Rhein
141 Beiträge
 
FreePascal / Lazarus
 
#2

Re: wie kann man Canvas-Grafiken refreshen

  Alt 25. Mär 2007, 16:09
Zeichne das ganze einfach in OnPaint neu.
Jakob Wenzel
"My store now sells Ninja Weapons!"
Comicverkäufer bei den Simpsons
  Mit Zitat antworten Zitat
to-wer

Registriert seit: 25. Mär 2007
29 Beiträge
 
#3

Re: wie kann man Canvas-Grafiken refreshen

  Alt 25. Mär 2007, 16:12
danke fürs schnelle Antworten.
Aber bin ein Neuling und brauche da noch etwas mehr Schützenhilfe

Was ist OnPaint?
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#4

Re: wie kann man Canvas-Grafiken refreshen

  Alt 25. Mär 2007, 16:14
Oder nimm ein Image.
Das zeichnet sich selber wieder neu.

Nimm zum Zeichnen:
Image.Canvas. ... und zum löschen des ganzen Bildes:
Image.Picture.Bitmap.Assign(NIL); //Edit: Fehler korrigiert
  Mit Zitat antworten Zitat
to-wer

Registriert seit: 25. Mär 2007
29 Beiträge
 
#5

Re: wie kann man Canvas-Grafiken refreshen

  Alt 25. Mär 2007, 16:17
aah, jetzt klappts.
Einfach eine Refreshprodezur beim Ereignis "OnPaint" eintragen und es geht.

Danke nochmal
Die nächste Frage kommt bestimmt...
  Mit Zitat antworten Zitat
to-wer

Registriert seit: 25. Mär 2007
29 Beiträge
 
#6

Re: wie kann man Canvas-Grafiken refreshen

  Alt 25. Mär 2007, 16:51
an halinchen:
was muß ich alles initialisieren bei Verwendung von Image?
Beim Create verlangt er nach mehr Parametern...

Danke im Voraus
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#7

Re: wie kann man Canvas-Grafiken refreshen

  Alt 25. Mär 2007, 17:02
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 von halinchen:
Nimm zum Zeichnen:
Image.Canvas. ... und zum löschen des ganzen Bildes:
Image.Bitmap.Assign(NIL);
  Mit Zitat antworten Zitat
to-wer

Registriert seit: 25. Mär 2007
29 Beiträge
 
#8

Re: wie kann man Canvas-Grafiken refreshen

  Alt 25. Mär 2007, 18:34
Image.Bitmap.Assign(NIL);

kennt mein Delphi nicht ... unbekannter Bezeichner.
Es steht auch nicht in meiner Referenz.

Ansonsten klappt es prima.
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#9

Re: wie kann man Canvas-Grafiken refreshen

  Alt 25. Mär 2007, 19:16
sorry
Image1.Picture.Bitmap.Assign(NIL);
  Mit Zitat antworten Zitat
to-wer

Registriert seit: 25. Mär 2007
29 Beiträge
 
#10

Re: wie kann man Canvas-Grafiken refreshen

  Alt 25. Mär 2007, 21:16
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 Uhr.
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