AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Spielfiguren (TImage) ohne Parent erstellen?

Ein Thema von Jazzman_Marburg · begonnen am 18. Okt 2012 · letzter Beitrag vom 18. Okt 2012
Antwort Antwort
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#1

Spielfiguren (TImage) ohne Parent erstellen?

  Alt 18. Okt 2012, 18:05
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
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Spielfiguren (TImage) ohne Parent erstellen?

  Alt 18. Okt 2012, 18:13
Ein TImage ist nur ein visueller Container. Erstelle eine Bitmap und füttere meinetwegen das Image wenn es benötigt wird damit.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
shmia

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

AW: Spielfiguren (TImage) ohne Parent erstellen?

  Alt 18. Okt 2012, 18:15
Für ein Spiel habe ich TFigur von TImage abgeleitet
Da fängt das Problem schon an.
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;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#4

AW: Spielfiguren (TImage) ohne Parent erstellen?

  Alt 18. Okt 2012, 18:28
Für ein Spiel habe ich TFigur von TImage abgeleitet
Da fängt das Problem schon an.
Du hast die Vererbung auf falsche Weise eingesetzt.
Hmm... muß ich erstmal drüber nachdenken (soll ja helfen).
Von TPersistent abzuleiten -- im Leben wäre ich nicht darauf gekommen.

Vielen Dank shmia -- auch an Sir Rufo!
Gruß
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Spielfiguren (TImage) ohne Parent erstellen?

  Alt 18. Okt 2012, 18:30
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.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Spielfiguren (TImage) ohne Parent erstellen?

  Alt 18. Okt 2012, 18:36
@shima Es ist besser AssignTo abzuleiten und nicht Assign
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.650 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Spielfiguren (TImage) ohne Parent erstellen?

  Alt 18. Okt 2012, 18:38
Und der Owner kann auch nil bleiben. (das sogar die ganze Zeit über, wenn es sein muß)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
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 00:04 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