PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : fltk Button, usw. aus aktivem Fenster löschen



pucki
22-02-2007, 15:55
hi,

ich habe eine graphische Oberfläche erstellt und füge erfolgreich einzelne Felder hinzu. in meinem Fall:
Fl_Output, Fl_Choice, Fl_Button

bei einer aktualierung wird die verfügbarkeit von geräten getestet. dabei kann es vorkommen, dass einzelne geräte abgeschaltet wurden. aus diesem grund möchte ich die für jedes gerät erstellten objete (Output, Choice, Button) wieder löschen.

zu diesem zeitpunkt habe ich sichergestellt, dass ich eine referenz auf die zu loeschende objekte habe. ein aufruf des destruktors bringt jedoch nur folgende Meldung auf den Schirm:


pure virtual method called

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

in meinem Fall auf die Konsole.

der aufruf erfolgt über


refaufobjekt->~Fl_Output();


alternativ kann ich auch versuchen die objekte nur auszublenden, probleme würde ich mir in diesem fall nicht einhandeln, aber halt nur in diesem fall.

hat da jemand noch eine idee?

gruesse

reinhard

ps: zur zeit teste ich das gerade unter windows mit fltk 1.1.7

nul
22-02-2007, 16:51
Ein Aufruf in der Art wie du es machst ist untypisch, versuchs mal delete.

pucki
23-02-2007, 14:54
hi,

mit


refaufobjekt->hide();
Fl::delete_widget(refaufobjekt);
Fl::check();


funktioniert das ganze nun.
Das Objekt muss zuerst ausgeblendet werden, was bei fltk anscheinend einem löschen gleich kommt ... der speicher des objektes wird dann mit delete_widget freigegeben

gruesse

reinhard

man das war mit abstand der am häufigsten editierte post den ich je angefangen habe ... dann freut es am ende natürlich, wenn aus "geht nicht" ein "so kann man das machen" wird ;-)