![]() |
Re: Name des Objektes herausbekommen
Danke schonmal für die Tips. Das ich es wohl über Umwege machen muss, dachte ich mir schon, kann es aber nicht glauben, dass man nicht den Namen des Objektes herausbekommt.
|
Re: Name des Objektes herausbekommen
Zitat:
da keine Information über das Objekt (über den versteckten Self-Pointer) hereinkommt, noch kann man das Objekt in irgendeiner Weise beeinflussen. Du möchtest allerdings eine "normale Methode" aufrufen. Für deine Fragestellung gibt es nun verschiedene Ansätze: - Basisklasse mit Property Name:string erstellen und deine Klasse(n) davon ableiten.
Delphi-Quellcode:
- Zeigervergleich (Nachteil: begrenzt auf global erzeugte Objekte)
TNamedObject = class(TPersistent)
private FName:String; public property Name:String read FName write FName; end;
Delphi-Quellcode:
- virtuelle Methoden
procedure TMeineKlasse.TestMethode;
begin if self=ObjektA then // Mach was für A else if Self=ObjektB then // Mach was für B else ; // alle übrigen Objekte end; siehe: ![]() Mit virtuellen Methoden und Vererbung lässt sich viel machen. Du brauchst wahrscheinlich mehrere Objekte, die aus mehreren Klassen erzeugt wurden und somit verschieden reagieren (anstelle von mehreren Objekten erzeugt aus einer Klasse) |
Re: Name des Objektes herausbekommen
Danke für die Aufklärung, ich werde es dann mit einer Property machen.
Gruß |
Re: Name des Objektes herausbekommen
Noch eine ergänzung:
Delphi-Quellcode:
Dann kannst du es leichter bei der erzeugung bennenen:
TNamedObject = class(TPersistent)
private FName:String; public constructor Create(const aName:string); property Name:String read FName write FName; end; ... constructor TNamedObject.Create(const aName:string); begin fName := aName; end;
Delphi-Quellcode:
:wink:
objekt1 :=TTestklasse.create('Hello1');
objekt2 :=TTestklasse.create('Foo2'); objekt3 :=TTestklasse.create('Bar3'); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:03 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