Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Typendefinition innerhalb einer Klasse (https://www.delphipraxis.net/163296-typendefinition-innerhalb-einer-klasse.html)

flosoft 23. Sep 2011 15:09

Delphi-Version: 2007

Typendefinition innerhalb einer Klasse
 
Hallo,
ich beginne gerade mich intensiver mit OOP zu beschäftigen.
Ich würde gerne folgendes erreichen:
Die Rückgabe von Function "foo" soll ein dynamisches Array aus Objekten der Klasse "THin" sein...
Hier mein Versuch:

Delphi-Quellcode:
uses Windows, Graphics;

type
  THin = class;

  TDes = class
  private
    type
       TaTHin = array of THin
    function foo(x: Integer): TaTHin;
  protected
    //...
  public
    //...
  end;

  THin = class
  private
    //...
  protected
    //...
  public
    //...
  end;

implementation
Mein Problem (oder besser gesagt das des Compilers :-D) ist die Typendefinition:
Delphi-Quellcode:
    type
       TaTHin = array of THin
Geht so ein "Konsturkt" in Delphi? Oder bin ich schon blind und es gibt dafür eine andere Lösung?
Danke
flosoft

himitsu 23. Sep 2011 15:21

AW: Typendefinition innerhalb einer Klasse
 
Zitat:

Zitat von flosoft (Beitrag 1126243)
Mein Problem (oder besser gesagt das des Compilers :-D) ist die Typendefinition:

Welches Problem? (Fehlerbeschreibung und Co.)

Zitat:

Zitat von flosoft (Beitrag 1126243)
Geht so ein "Konsturkt" in Delphi?

Ausprobieren?

seit Delphi 2006 / TDE: Ja, aber teilweise auch erst seit D2009


Zitat:

Zitat von flosoft (Beitrag 1126243)
und es gibt dafür eine andere Lösung?

Diesen Typen nicht inline deklarieren?

Delphi-Quellcode:
  THin = class;
  TaTHin = array of THin;

  TDes = class
  private
    ...

Bezüglich OOP sollte man hier aber noch die TObjektList erwähnen, anstatt des Arrays.

Union 23. Sep 2011 15:23

AW: Typendefinition innerhalb einer Klasse
 
Private Typdefintion geht IMHO nicht.

s.h.a.r.k 23. Sep 2011 15:26

AW: Typendefinition innerhalb einer Klasse
 
Zitat:

Zitat von Union (Beitrag 1126251)
Private Typdefintion geht IMHO nicht.

Klar gehts. Sogar strict private, wenn man sowas brauchen sollte.

Hm, aber ob das in der 2007er Version schon ging, weiß ich leider nicht.

Union 23. Sep 2011 15:31

AW: Typendefinition innerhalb einer Klasse
 
In $7D9 geht es

flosoft 23. Sep 2011 15:40

AW: Typendefinition innerhalb einer Klasse
 
Hallo,

das geht ja wieder fix!

@himitsu
Hatte das natürlich ausprobiert. Mit dem Erfolg:
[DCC Fehler] Deskewing.pas(25): E2029 '=' erwartet, aber ':' gefunden

TObjectList klingt gut. Schaue ich mir mal an.

Die Lösung von himitsu funktioniert.

Danke
flosoft

himitsu 23. Sep 2011 15:43

AW: Typendefinition innerhalb einer Klasse
 
Zitat:

Zitat von flosoft (Beitrag 1126258)
[DCC Fehler] Deskewing.pas(25): E2029 '=' erwartet, aber ':' gefunden

Wenn es auch in Public nicht geht, dann wird es wohl doch erst später implementiert worden sein.

Die Syntax stimmt, so im Prinzip.
Aber dein Delphi scheint dieses wohl so noch nicht zu kennen, darum diese Fehlermeldung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz