Announcement

Collapse
No announcement yet.

Komponenten in eigener Ereignisbehandlungsroutine löschen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Komponenten in eigener Ereignisbehandlungsroutine löschen

    Hallo,
    ich suche eine Möglichkeit um dynamisch erzeugte Komponenten, denen eine OnClick-Behandlungsroutine zugeordnet ist, wieder zu löschen wenn man man auf sie klickt. Hört sich erstmal ganz einfach an, aber wenn ich in der Behandlungsroutine delete zum löschen aufrufe, erhalte ich diverse Fehlermeldungen. In der Onlinehilfe stand man soll es unterlassen Komponenten in der eigenen Behandlungsroutine zu löschen - ist ja eigentlich auch logisch. Das ist aber noch keine Lösung für das Problem. Hat jemand eine Idee wie ich das erreichen kann.

    Vielen Dank im Voraus für Eure Hilfe.

    Daniel

  • #2
    Hi Daniel,

    Vorschlag: in einer Postmessage den Pointer des zu löschenden Objektes an deine Oberfläche(oder wo die Komponente verwaltet wird) schicken (z.B. als LPARAM).<br>
    An der Oberfläche die Message entgegennehmen und auf den entsprechenden Typen zurück casten ( oder wenn Du den Typen nicht genau kennst auf TObject, davon sollten ja alle Komponenten abgeleitet sein) und dann den Zeiger deleten und zur Sicherheit auf Null setzen.

    Wenn Du die Message am Ende des Ereignisses absetzt wird erst die Funktion beendet, der Stack abgebaut und dann die Message verarbeitet --> Komponente gelöscht.

    Gruß Thorste

    Comment

    Working...
    X