Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#8

Re: Komponente nur einmal pro Anwendung "zulassen"

  Alt 4. Jan 2005, 11:18
Eigentlich ganz einfach. Beiliegendes Beispiel hat allerdings einen Nachteil. Im Designmodus wird es nicht richtig funktionieren, wenn Du zwei Forms öffnest, wo die Komponente draufliegt (und diese nicht zur gleichen App gehören). Ansonsten müsste es eigentlich gehen. Der Trick besteht darin sich in einer privaten globalen Unit-Variablen zu merken, wie oft die Komponente erstellt wurde. Jedes Mal wenn diese erstellt wird, inkrementierst Du den Zähler, beim Zerstören dekrementierst Du den wieder.

Wenn der Zähler größer 1 wird, dann wirfst Du eine Exception raus. Immer im Destructor wieder dekrementieren, auch bei der Exception, da unter Win32 der auch wieder aufgerufen wird, wenn eine Exception auftritt (Resourcenfreigabe).

......
Angehängte Dateien
Dateityp: zip onetimer_821.zip (6,0 KB, 3x aufgerufen)
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat