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.