![]() |
Objekt.Methode(Parameter).Methode... <- wie baut man sowa
Hi,
man sieht ja häufig solche Konstruktionen:
Delphi-Quellcode:
oder
Label1.Font.Color := clRed
Delphi-Quellcode:
Wie wird sowas programmiert? Sind das Objekte, die direkt in den Klassen deklariert werden? Aber wo werden dann Parameter gespeichert?
Objekt.Methode(Ein_Parameter_oder_mehr).NochEineMethode.usw
Vielen Dank, Morfio ... |
Re: Objekt.Methode(Parameter).Methode... <- wie baut man
Zitat:
Zu "Objekt.Methode(Ein_Parameter_oder_mehr).": "Methode" gibt hier anscheinend ein Objekt zurück, dass dann über die Methode "NochEineMethode" angesprochen wird. mfG mirage228 |
Re: Objekt.Methode(Parameter).Methode... <- wie baut man
Hi,
ne, das wir mir auch klar. Die Frage, die ich mir stelle ist, wie man solche Konstrukte selber bauen kann in eigenen Klassen, da sie von der Bedienung her relativ praktisch sind. Morfio ... |
Re: Objekt.Methode(Parameter).Methode... <- wie baut man
Zitat:
das sehe jeweils so aus
Delphi-Quellcode:
Nun, das ist in etwas selbe, wie mit Label.Font.Color. Damit kannst du ganz einfach den Lese/Schreibzugriff kontrollieren. Ist eigentlich ganz praktisch.
type
TTest = class(TObject) private function GetVal: Integer; procedure SetVal(Val: Integer) public property Val: Integer read GetVal write SetVal; Das Zweite ginge in etwa so.
Delphi-Quellcode:
mfG
type
TAClass = class(TObject) public procedure EineMethode; end; type TBClass = class(TObject) private FClass: TAClass; FClass2: TAClass; // Eins von den beiden wird je nach "Parameter" übergeben // Du könntest in "Methode" auch eine neue Instanz erzeugen, // aber das kann eventuell zu Speicherlöchern führen, wenn diese Objekte nicht mehr freigegeben werden... public function Methode(Parameter: Integer): TAClass; end; mirage228 |
Re: Objekt.Methode(Parameter).Methode... <- wie baut man
Ah,
das zweite Beispiel bringt mich schon weiter. Ich werde damit mal was herumexperimentieren. Vielen Dank. Morfio ... |
Re: Objekt.Methode(Parameter).Methode... <- wie baut man
Du definierst und deklarierst die Klassen wie gehabt, aber als Objektfeld bzw. -property nimmst du ein Objekt einer anderen Klasse.
Also so z.B.:
Delphi-Quellcode:
type
TMyClass = class public procedure DoSomething; end; TYourClass = class private FMyClass: TMyClass; public constructor Create; destructor Destroy; override; property MyClass: TMyClass read FMyClass; end; //[...] constructor TYourClass.Create; begin FMyClass := TMyClass.Create; end; destructor TYourClass.Destroy; begin FMyClass.Free; end; //[...] var yc: TYourClass; begin yc := TYourClass.Create; yc.MyClass.DoSomethin; yc.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 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 by Thomas Breitkreuz