Banner left   Banner center   Banner right

Germanenglish Home · News · Diary · Screenshots · Documentation (Wiki) · Downloads · Guestbook · Forum

Home · Benutzer registrieren · Suchen · Statistik · FAQ · Benutzerliste

Zur Zeit online: keiner ausser dir

 X-Force - Fight For Destiny - Forum —› Quellcode / Programmierung —› Frage zu TFigureList

Autor Mitteilung
verfasst am: 15.08.2004, 15:19 · Edited by: Admin
Registrierdatum: 09.01.2004, 11:03

 Beiträge: 106
In Zukunft bitte den [code][/code] Tag verwenden (Jim_Raynor)

Hi Jim
Ich wollte gerne wissen ,was es mit der seltsamen Typ-
Deklaration in der GameFigure-Unit auf sich hat.
Du deklarierst TFigureList einfach ohne etwas hinzuzufügen ,benutzt sie aber später beim Constructor für
TGameFigure.
Meine Frage dann ist es doch ncihts anderes ,als ein
TObject .
Warum benutzt du es dann nicht gleich als solches.
Und vor allem was macht das für einen Sinn.
Und warum funktioniert darauf eine Methode ,die nicht dafür Deklariert ist.
Du sagst nämlich :

constructor TGameFigure.Create(List: TGameFigureList);
begin
  fNotifyList:=TNotifyList.Create;

  fInjuredStatus:=0;
  fFirstBeam:=true;
  fSeeCount:=0;
  fMoving:=false;
  fCanBeam:=true;
  fFrame:=0;
  fFiller:=true;
  fList:=List;
  fDead:=false;
  fImRaumschiff:=true;
  fSavedUnit:=nil;
  fLastVisible:=false;
  fState:=[usReady];
  fRemoveSelection:=false;

  fLaufExp:=0;
  fSchussEXP:=0;

  fWay:=TWay.Create;
  fWay.SetFigurePtr(Self);

  List.AddFigure(Self);

  Rec.Figure:=Self;
  SendVMessage(vmCreateHintForFigure);
  fHintObject:=(Rec.resultObj as TFigureObject);
end;
Obwohl du TGameFigureList so deklarierst :
TGameFigureList = class;


mehr nicht!!!!!
verfasst am: 15.08.2004, 18:17
Programmierer

Registrierdatum: 23.08.2003, 19:16

 Beiträge: 2261
Schau mal weiter unten in GameFigure dort wirst du die komplette Deklaration von TGameFigureList finden. Dieses nennt man Vorwärtsdeklaration. Alle Typen, die man benutzt müssen vorher bekannt sein.
Schaue mal in der Hilfe nach "forward-Deklarationen, Klassen". So hiess das zumindestens in Delphi 5. Sollte aber in Delphi 6/7 unterm gleichem Stichpunkt zu finden sein.
verfasst am: 15.08.2004, 21:13 · Edited by: Mazet
Registrierdatum: 05.08.2004, 19:54

 Beiträge: 103
Vorsicht bei Kon-/Destruktoren mit vergessenen inherited-calls, zumindest sehe ich keinen im obigen Codeschnipsel. Dadurch wird der Parentkonstruktor nicht aufgerufen und "ruck-zuck" hat die Objekthierachie eine Knacks weg ;)

Zudem empfehle ich per Assigned() Objekte in Konstruktoren auf Gültigkeit zu prüfen, bevor darauf zugegriffen wird (oben z.B. List.Add...). Die schlimmste Zugriffsverletzung ist die, die in Konstruktoren auftritt, da dies durch Folgefehler ein Applikationskiller ist.
verfasst am: 16.08.2004, 19:18
Registrierdatum: 09.01.2004, 11:03

 Beiträge: 106
thx
verfasst am: 03.09.2004, 08:31
Registrierdatum: 09.01.2004, 11:03

 Beiträge: 106
Jim wann initialisierst du die TFigurelistvariable ,die in der ISO-Engine aufgerufen wird.
Denn ich muss ja wissen ,wann ich diese Objecte hinzufügen muss.
verfasst am: 05.09.2004, 17:32
Programmierer

Registrierdatum: 23.08.2003, 19:16

 Beiträge: 2261
Passiert in der Unit EinsatzIntro.
verfasst am: 02.07.2009, 20:01
Grafiker

Registrierdatum: 24.11.2006, 14:22

 Beiträge: 568
TGameFigureList

Da steht das T wohl für "Type", "Typen" oder?
Gilt für alle Dateien, oder?
verfasst am: 02.07.2009, 21:38
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Ist eine allgemeine Namenskonvention. Alle eigenen Typen sollten mit T beginnen, alle eigenen Pointer mit P, private Eigenschaften mit f ...

Ist zwar nicht zwingend erforderlich, erhöht aber die Übersichtlichkeit.
verfasst am: 03.07.2009, 03:58
Grafiker

Registrierdatum: 24.11.2006, 14:22

 Beiträge: 568
Ah, vielen Dank, P wuste ich nicht, f sind dann die Funktionen...

OK, ich glaube damit kann ich was anfangen.
verfasst am: 03.07.2009, 14:42
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
lies nochmal, f hat nichts mit Funktionen zu tun, da geht es um private Eigenschaften...



Du musst dich registrieren um auf dieses Thema zu antworten.
Login :: » Name » Passwort

Ladezeit (sec.): 0.012 · Powered by miniBB 1.6 with parts of 1.7 © 2001-2003