Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Klassen
dany - Di 29.07.03 16:09
Titel: Klassen
Hi,
ich haben 2 Probleme:
1) wie kann ich innerhalb einer Klasse den Instanznamen abfragen.
2) ich möchte in einer Klasse eine TString-Variable deklarieren. Diese soll beim Create einer Instanz dieser Klasse per Adressübergabe eine Stringliste bekommen. Werden innerhalb dieser Klasse Veränderungen an der String-Liste vollführt, soll das auf der Orginal-Stringliste passieren, d.h. auserhalb der Klasse oder unit sollen die Änderungen sofort sichtbar sein. Ich möchte nicht bei jeden Funktionsaufruf die Liste übergeben, oder bei Veränderungen zurückschreiben.
dany
Nightmare_82 - Di 29.07.03 19:19
zu 2. :
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| TMyClass = class private FList : TStringList; public constructor create(List : TStringList); end; |
damit übergibst du einen Pointer auf die Klasse. Den speicherst du in jeder Klasse, also: FList : TStringList;
Um zu merken, wann die Liste upgedatet wird, kannst du z.B. sowas machen:
Delphi-Quelltext
1: 2: 3: 4:
| TMyList = class(TStringList) public procedure update; end; |
Dann kannst du jedesmal, wenn ein Objekt die Liste bearbeitet, update aufrufen, um auf dem aktuellsten Stand zu sein. Eine andere Möglichkeit wäre ein Event, oder du übergibst den Pointer auf deine Hauptklasse:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| TManager = class procedure updateList; end;
TListEdit = class private FManager : TManager; FList : TStringList;
public constructor create(Manager : TManager; List : TStringList); procedure editList; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!