![]() |
AW: Problem mit Uses-Klausel
Zitat:
Eine Frage hab ich dazu noch: Ich habe also
Delphi-Quellcode:
Demnach geht {1} natürlich nicht, da UnitMain TAuto nicht kennt, wie vorhin schon klargestellt. Aber geht {2}?
uses UnitAuto;
type Parkhaus = class FAuto : TList; function GetAuto(Index : Integer) : TAuto; ... property Auto[index : integer] : TAuto read GetAuto; end; //In der UnitMain uses UnitParkhaus; ... {1} function meinAuto : TAuto; begin result := Parkhaus.Auto[0]; end; {2} function AnzahlReifen : Integer; begin result := Parkhaus.Auto[0].NReifen; end; Oder braucht es dazu eine 'function TParkhaus.GetNReifen(Index) : integer'? |
AW: Problem mit Uses-Klausel
Wenn die Funktion TAuto zurückgibt, muss TAuto auch bekannt sein, sonst könnte die MainUnit ja gar nicht wissen, dass diese über eine Methode/Property NReifen verfügt.
|
AW: Problem mit Uses-Klausel
Zitat:
|
AW: Problem mit Uses-Klausel
Sicher? Ich hab gerade kein Delphi am Start, aber es würde mich wundern.
|
AW: Problem mit Uses-Klausel
Zitat:
|
AW: Problem mit Uses-Klausel
Ich bin fest davon überzeugt, dass philharmonys Annahmen völlig korrekt sind, und man keinen Getter für 2 bräuchte. Wenn das nicht wäre, würde man ja sowas von übel im Klassendesign beschränkt sein, und jede Pupel-Property durchreichen müssen. Man kann eben nur die Instanz von Parkhaus.Auto[i] keiner Variablen zuweisen, da für diese kein passender Typ verfügbar wäre.*
*)Wäre es schon: Jede Elternklasse von TAuto ginge, nur könnte man nachher nicht mehr dort hin casten um an die Member heranzukommen die seit dem verwendeten Typ dazu kamen. Und da alle Klassen zwangsweise von TObject erben, ginge durchaus dieses:
Delphi-Quellcode:
Nur könnte man nicht mehr auf
var
auto: TObject; begin auto := Parkhaus.Autos[0];
Delphi-Quellcode:
zugreifen, da es das in TObject noch nicht gibt. Gäbe es hingegen einen Vorfahren von TAuto - z.B. TBereiftesVehikel - der bereits den Member NReifen kennt, und man dessen Unit einbände, DANN ginge das wieder. Aber das sind jetzt langsam eigentlich nur noch theoretische Überlegungen.
auto.NReifen
|
AW: Problem mit Uses-Klausel
Zitat:
Delphi-Quellcode:
zusammen mit dem richtigen Include-Verzeichnis als Compilerparameter reicht hier :mrgreen:
{$include platformspecific.inc}
Und zudem bietet die Lazarus IDE auch eine bessere Unterstützung für Includes (eben genau wegen der oben genannten gängigen Praxis) als es Delphi hat. Gruß, Sven |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 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