AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Dynamisch erzeugte Komponente soll sich selbst löschen...
Thema durchsuchen
Ansicht
Themen-Optionen

Dynamisch erzeugte Komponente soll sich selbst löschen...

Ein Thema von arc · begonnen am 20. Nov 2010 · letzter Beitrag vom 25. Nov 2010
 
Peter1999

Registriert seit: 13. Dez 2007
Ort: Dresden
88 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Dynamisch erzeugte Komponente soll sich selbst löschen...

  Alt 20. Nov 2010, 09:40
Ja, du hast Recht, eine Komponente kann sich nicht selbst löschen.
Einen Timer zu missbrauchen, halte ich aber für ziemlichen Pfusch .
Eine ebenfalls unschöne aber bessere Lösung sieht folgendes vor:
Jedes Panel bekommt eine ID, z.B in dessen Tag.
Beim Klick auf den Button (auf dem Panel) bekommt ein beliebiges anderes Control (z.B. deine Combobox, nicht auf dem Panel!) den Focus zugewiesen und übernimmt in seinem Tag den Tag des Panels.
In der Methode OnGetFocus des anderen Controls löschst du dann (wenn eigener Tag > 0) das Panel und alles was dazu gehört und setzt den Tag wieder auf -1 .
Somit wird das Panel nicht von sich selbst freigegeben und es läuft nirgends ein unnützer Timer.

Achtung, falls du wirklich noch mit D7 arbeitest, da hat scheinbar der Speichermanager ein Problem.
Jedenfalls habe ich FastMM mit einbinden müssen. Ab D2006 ist das ja standard.

Beispiel findest du im Anhang.

Viele Grüße,
Peter
Angehängte Dateien
Dateityp: zip SelbstLoeschendeControls.zip (319,8 KB, 6x aufgerufen)
  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 08:21 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