DynTabCtrl Problem / Hilfe phlox81



  • Hallo zusammen, hallo devil,

    ich ahbe ein kleines Problem mit der DynTabCtrl Klasse. Ich würde sie gern für ein Proggy verwenden, in dem ich dynamisch Tabs hinzufüge bzw. lösche. Jetzt kann es auch sein, dass jemand einen der Tabs in der Mitte schließt. In dem Falle hab ich grad Probleme. Es klappt zwar, aber danach scheint die Reihenfolge total hinüber zu sein.

    Ich habe mir in den Unterdialogen deren Position gemerkt und gebe Sie zum Löschen an das Übergeordnete Fenster, wenn der Unterdialog abgearbeitet ist. Hiernach lässt sich der letzte Dialog nicht mehr schließen, da er keinen Zugriff mehr hat.
    Ich vermute er organisiert das Array neu und somit stimmen meine Positionen hinter dem Dialog nicht mehr.

    Hat jemand ne Idee, wie ich das umgehe? Es wäre eine Möglichkeit einfach hochzuzählenund immer nur den letzten Dialog in der Tabreihe bearbeiten zu lassen. Dann klappt es. Das ist aber nicht so wirklich im Sinne der Verwendbarkeit. (meine Meinung)

    Hat jemand ne Idee um diese Klippe zu umschiffen?

    Im Übrigen: Sehr schöne Klasse vielen Dank an den Ersteller. 🙂

    Viele Grüße
    Ranger



  • Klasse hin oder her, ich frag mich nur warum der ersteller der Klasse (der Entwickler) die Dialoge in einem Array speichert, anstatt diese direkt an das jeweilige Register des Tabctrl zu hängen (lpParam. Dadurch wird unterbunden das tabctrl und Array inckonsistent werden. Aber das ist nur meine Idee zu deinem Problem.

    Sollte ich total daneben liegen vergesst einfach den Beitrag

    Gruß Matthias



  • So, ich hab das Problem gelöst.

    Der Anstoß war der Beitrag von CTecS.
    Ich habe die Konsistenz mal geprüft und mir is aufgefallen, dass ich einfach nur die Membervariable m_atuelpos zum löschen nehmen muss, dann funzt es. Die muss dann allerdings in den public Bereich der Klasse, aber das ist ja kein Problem.

    Viele Grüße und Dank
    Ranger



  • ich frag mich nur warum der ersteller der Klasse (der Entwickler) die Dialoge in einem Array speichert, anstatt diese direkt an das jeweilige Register des Tabctrl zu hängen (lpParam).

    Wahrscheinlich weil im Destruktor das tabctrl nicht mehr zur verfügung steht und GetItem() ein Fehler liefert. Somit können die Dialoge nicht mehr gelöscht werden.


Anmelden zum Antworten