AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Überprüfen ob Klasse instanziert ist

Ein Thema von Koolance · begonnen am 3. Nov 2006 · letzter Beitrag vom 3. Nov 2006
 
Koolance

Registriert seit: 28. Feb 2006
Ort: Kerpen
74 Beiträge
 
Delphi 6 Enterprise
 
#1

Überprüfen ob Klasse instanziert ist

  Alt 3. Nov 2006, 10:14
Ich suche einen Befehl zum überprüfen ob ein Klasse bereits instanziert wurde.

Genauere Erklärung:

Schreibe gerade eine Middleware. Alle Datenzugriffe gehen über Objekte.
Beispiel Klasse Adress verwendet Klasse Titel. Klasse anrede soll aber erst instanziert werden wenn auf sie zugegriffen wird.
Das ganze liegt hinter einer Property.

Mein Gedanke war die klasse eine exception schmeißen zu lassen wenn sie noch nicht instanziert ist und sie dann bei bedarf zu erzeugen. Das ganze ist natürlich von Gedanken her unschön, aber was noch schlimmer ist es funktioniert nicht und führt zu eine Stack-üblerlauf.

Code:
function TAddress.Gettitel: Ttitel;
begin
  try
    self.ftitel.InstanceSize; //wenn ich nicht existiere schmeiße ich eine exception
    self.ftitel.id:=self.ftitel.id; //auch eine exception
  except
    self.ftitel:=ttitel.Create(nil,MyConnection);
    self.titel.OnAfterSelectByID:=self.titelIdChange;
  end;
  if self.ID_TITEL <> 0 then
    titel.SelectByID(self.ID_TITEL);
  result:=self.titel;
end;
  Mit Zitat antworten Zitat
 


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 17:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz