AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Über dynamischen Namen auf eine Instanz zugreifen

Über dynamischen Namen auf eine Instanz zugreifen

Ein Thema von skyphab · begonnen am 19. Apr 2004 · letzter Beitrag vom 19. Apr 2004
 
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#4

Re: Über dynamischen Namen auf eine Instanz zugreifen

  Alt 19. Apr 2004, 16:36
Das FindComponent für die TComponents kann aus einem simplen Grund funkionieren - alle Komponenten stehen in der Componentenliste ihres Owners. FindComponent sucht also in der Liste einfach nach einer Componente mit dem passenden Namen und gibt diese zurück.

Etwas ähnliches könnte man sich für Objekte aufbauen, indem man einfach jedes neue Objekt in eine TList einträgt die man dann später durchsuchen kann.
Solange der Constructor immer gleich aussieht liesse sich das so realisieren:
Delphi-Quellcode:
type
  TMyObjectClass = class of TObject;
var
  ObjectList: TList;
(..)
function CreateAndRegister(ObjClass: TMyObjectClass): TObject;
begin
  if not Assigned(ObjectList) then
    ObjectList := TList.Create;
  Result := ObjClass.Create;
  ObjectList.Add(Result);
end;

procedure FreeAndNilAndForget(Object: TObject);
var
  Index: Integer;
begin
  if Object <> nil then
  begin
    Index := ObjectList.IndexOf(Object);
    if Index > -1 then
      ObjectList.Delete(Index);
    Object.Free;
    Object := nil;
  end;
end;
Alternativ dazu erweiterst Du den Constructor/Destructor des Objects so das es sich selber ein-und austrägt.

Wie bereits gesagt wurde: Erst wenn man eine gemeinsame Eigenschaft wie z.B. den nmen bei TComponent hat macht diese Liste Sinn, sonst fehlt natürlich das Suchkriterium.

MfG,
Tryer
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 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