TShape, TCanvas, TImage ... was gibts noch?
-
Hallo.
Mein Problem besteht erstmal aus einer Frage der Machbarkeit.
Mein Programm beinhaltet eine Galaxiekarte mit keinem gleichfarbigen Hintergrund.Ich möchte dort Punkte für System (Sternensysteme) hinterlegen <-- funktioniert.
Desweiteren sollen später Pfeile eingetragen werden können, die z.B. von System A nach System B verlaufen/zeigen.
Mir ist bekannt, dass man mit TShape etc. den Pfeil oder Punkt nicht einfach löschen kann, sondern mit der Hintergrundfarbe quasi übermalen soll, um den Pfeil/Punkt verschwinden zu lassen.(Ich hab noch nicht versucht einen Pfeil zu zeichnen, weil ich vorher wissen möchte, ob es sich lohnt so an die Sache heranzugehen)
Wie kann ich nun trotzdem einen Pfeil dort einzeichnen, um ihn ggf. auch verschieben/löschen zu können.
Ich Bitte um Verständniss, ich arbeite mich hier gerade ein und kann mich nur auf die FAQ hier stützen. Und leider besitze ich auch keine geschulten Kenntnisse.
Gruß
PS: Meine Idee wäre ja gewesen, eine transparentes Hintergrund/Frame zu zeichnen und da drauf den Pfeil. Sodass ich dann mit dem löschen des Frames den Pfeil auch lösche. Geht sowas? Inwiefern geht das u.U. auch einfacher?
-
Hallo
Bei sowas ist es immer besser die einzelnen Teile zu trennen.
Zum einen nur mit TCanvas arbeiten, TShape und Konsorten stören da nur.
Zum andern mußt du den gleichbleibenden Hintergrund (in deinem Fall die Sternenkarte) in ein ständig präsentes TBitmap im Hintergrund laden, nicht sofort und ausschließlich in ein TBitmap/TImage/TCanvas. Auch die einzelnen über dem Hintergrund liegenden "Sprites" wie die Pfeile lädst du extra in ein TBitmap und speicherst immer die aktuelle Position zwischen (hie bietet sich ein eigenes Klassendesign an).
Nun kannst du bei jeder logischen Änderungen je nach gewünschter Komplexität und Performance entweder den Hintergrund in das Ausgabecontrol kopieren und darauf die einzelnen Sprites je nach aktueller Position (also alles komplett überzeichnen) oder du überzeichnest aus den Grunddaten nur die Regionen die sich auch wirklich geändert haben.bis bald
akari