PageControl schließen



  • Original erstellt von DerAltenburger:
    Aber nicht NUR löschen!

    Sondern? RemoveControl und RemoveComponent sind jedenfalls überflüssig.



  • wieso sind die überfüssig?

    if(PageControl1->ActivePage)
          {
            int Count = PageControl1->ActivePage->TabIndex;
            Count++;
    
            delete(RE[Count]);
            delete(TS[Count]);
    
            PageControl1->SelectNextPage(Count>0);
          }
    

    hab den Code jetzt so geädert das löschen funktioniert wunderbar, nur bei einigen Fällen nicht:

    - wenn ich 2x die "erste" Löschen will
    - wenn ich die letzte löschen will, also wenn ich alle gelöscht habe und nur eine da ist dan kommt ein Acxeption Fehler.

    [ Dieser Beitrag wurde am 13.04.2003 um 19:32 Uhr von mosta editiert. ]



  • Ich habe keine Ahnung, was du genau erreichen willst, aus deinem Code-Gerümpel (sorry ;)) wird das jedenfalls nicht klar.

    for (int i = PageControl1->PageCount-1; i >= 0; i--)
        delete PageControl1->Pages[i];
    

    Damit werden sämtliche TabSheets inklusive aller jeweils darauf befindlichen Controls vorschriftsmässig gelöscht.



  • na, es soll die zuletzt gewählte Seite gelöscht werden und danach die nächste Seite denn Focus erhalten.



  • @Mosta

    wieso sind die überfüssig?
    *

    Schau die mal die Hilfe zum Destructor von TTabsheet an!

    Es ist wie Jansen sagt!

    PS: dachte nur, beim Erzeugen wird ja auch erst Tabsheet erzeugt und dann PageControl hinzugefuegt. Aber Loeschen reicht.



  • Original erstellt von mosta:
    es soll die zuletzt gewählte Seite gelöscht werden und danach die nächste Seite denn Focus erhalten.

    So in etwa?

    delete PageControl1->ActivePage;
      PageControl1->SetFocus();
    

    Den Focus erhält die nächste Seite automatisch, SetFocus dient hier nur dazu, den Focus vom Button zum PageControl zurückzubringen.



  • so, funktioniert es. Ansonsten setzt er keinen Focus

    delete PageControl1->ActivePage;
       PageControl1->SelectNextPage(true);
    


  • Original erstellt von mosta:
    Ansonsten setzt er keinen Focus

    Nach dem Löschen der ActivePage ist automatisch die nächste Seite die ActivePage und somit selektiert. Bei zusätzlichem Aufruf von SelectNextPage wird dann logischerweise statt der nächsten (bezogen auf die gelöschte) die übernächste Seite selektiert. So läuft's jedenfalls im BCB6.



  • im BCB3 aber nicht



  • Pech für dich. 🙂

    PS: Keine Ursache, gern geschehen! 😉


Anmelden zum Antworten