Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Probleme bei Leveleditor (Grid in Array speichern)

  Alt 17. Aug 2005, 19:30
Zitat von Red six:
Ich bin grade dabei einen Leveleditor für mein 2D Spiel zu bauen. Ich hab eine ScrollBoxEx (Die ich in diesem Forum gefunden habe, Danke an dieser Stelle) in der eine PaintBox ist auf welche ein Raster gezeichnet wird. Auf klick wird ermittelt in welchem Kästchen die Maus ist (hab ich villeicht etwas kompliziert gemacht aber es geht), dann soll auf Knopfdruck ein Bild in das entsprechende kästchen gezeichnet werden. Dieses wird auch in einem Array gespeichert damit es nicht verschwindet wenn das Raster neu gezeichnet wird. Nun hab ich aber das Problem dass wenn ich mehrere Bilder einfüge manche von ihnen wieder verschwinden...
Du machst einen grundsätzlichen Fehler mit der Paintbox.
Auf die Paintbox soll nur aus dem Event OnPaint gezeichnet werden; nicht von ausserhalb.
(die wenigen Ausnahmen lassen wir mal ausser acht)
Der Klick ändert also zuerst den Inhalt in deinem Array.
Danach rufst du. Paintbox.Paint auf.
Die VCL ruft dann das Event OnPaint auf und innerhalb dieses Events liest du das Array aus und zeichnest.

Wenn nun ein "böses" Fenster sich über deine Paintbox legt und es wieder aufdeckt, bleibt keine graue oder schwarze Fläche sichtbar, sondern es wird neu gezeichnet.
Andreas
  Mit Zitat antworten Zitat