![]() |
Spielfiguren (TImage) ohne Parent erstellen?
Hallo Gemeinde.
Für nachfolgendes Problem habe ich zwar eine Lösung -- aber sie garnicht schön, und ich hoffe ihr habt eine bessere Idee: Für ein Spiel habe ich TFigur von TImage abgeleitet. Zu dem Zeitpunkt wenn ich sie erstelle, möchte ich sie aber garnicht zeichnen. Aber TImage benötigt nuneimal ein Parent. So übergebe ich also zu diesem Zeitpunkt eine Dummy-Panel (visible:=false). Später assigne ich dem eigentlichen Panel die Figuren und sie werden gezeichnet -- was ok ist. Aber diese Konstruktion mit dem Dummy-Panel ist doch irgendwie fishy, oder? Habt ihr eine elegantere Idee? Vielen Dank Jazzman |
AW: Spielfiguren (TImage) ohne Parent erstellen?
Ein TImage ist nur ein visueller Container. Erstelle eine Bitmap und füttere meinetwegen das Image wenn es benötigt wird damit.
|
AW: Spielfiguren (TImage) ohne Parent erstellen?
Zitat:
Du hast die Vererbung auf falsche Weise eingesetzt. Ein TImage ist eine visuelle Komponente um ein Picture anzuzeigen. Ein Spielfigur ist etwas ganz anderes; es dreht sich dabei mehr um den Inhalt; also wie die Figur aussieht; als um die Anzeige. Ich würde TFigur unabhängig von TImage, TPaintbox oder Ähnlichem entwerfen:
Delphi-Quellcode:
TFigur = class(TPersistent)
private .. public procedure Assign(Source: TPersistent);override; procedure PaintToCanvas(canvas:TCanvas); property Left:Integer ...; property Top...; property Width... property Height...; end; |
AW: Spielfiguren (TImage) ohne Parent erstellen?
Zitat:
Von TPersistent abzuleiten -- im Leben wäre ich nicht darauf gekommen. Vielen Dank shmia -- auch an Sir Rufo! Gruß Jazzman |
AW: Spielfiguren (TImage) ohne Parent erstellen?
Zudem verwechselst du Parent mit Owner. Ein TImage braucht beim Create noch kein Parent. Das was du uebergibst ist nur der Owner, das Parent kann doch erstmal auf nil bleiben und du weist es erst zu, wenn du eines hast.
|
AW: Spielfiguren (TImage) ohne Parent erstellen?
@shima Es ist besser AssignTo abzuleiten und nicht Assign ;)
|
AW: Spielfiguren (TImage) ohne Parent erstellen?
Und der Owner kann auch nil bleiben. (das sogar die ganze Zeit über, wenn es sein muß)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz