TabSheet einer PageControl "schließen"

macsmac

Grünschnabel
Hallo.

Ich habe folgendes Problem:

Ich habe auf meiner Form ein PageControl mit mehreren Pages (TabSheets).
Diese können über einen Menübefehl "Neu" wärend der Laufzeit hinzugefügt werden
Code:
TTabSheet *Page;
Page = new TTabSheet(PageControl1);
Page->PageControl = PageControl1; 
PageControl1->ActivePage = Page;
Darin enthalten sind zwei RichEdits, getrennt duch eine Splitterkomponente.
Die Erzeugung erfolgt genauso wie beim TabSheet, inklusive Alignment. Hier Bsp. Splitter:
Code:
Sp1 = new TSplitter(Page);             
Sp1->Parent = Page;
So, nun möchte ich natürlich auch die aktuell aktive Page (TabSheet) inklusive ihres Inhaltes schließen können. Um es einfach zu halten über ein Menüpunkt "Schließen".
Die Suche in der CBuilderHilfe hat bisher nichts ergeben. (Der obige Code stammt übrigens aus der Hilfe).
Also habe ich mir folgendes gedacht...
Code:
delete PageControl1->Pages->TTabSheet(PageControl1->ActivePage);
Wobei ich mir nicht so ganz im Klaren darüber bin was ich mit TTabSheet *Page machen soll, eigentlich liegt ja da meine aktuelle Page (TabSheet)...

Im Prinzip ist die Sache vergleichbar mit Internetbrowsern à la Opera, FireFox etc., welche Tabs unterstützen. Auch dort kann man ja einen neuen Tab wählen um darin eine Seite anzeigen zu lassen und diesen dann wieder mit samt der Seite schließen.

Danke für eure Hilfe im Voraus.

MfG M
 
Zuletzt bearbeitet:
TTabSheet *Page ist ja nur ein Pointer, der später (nach der Definition/Zuweisung einer Page) auf diese zeigt.

Mit Page = new TTabSheet(PageControl1) weist du dem Pointer dann eine Seite zu, es reicht also, wenn du mit delete die Seite entfernst, den Poiter brauchst du nicht zu löschen.
 
Danke für die echt fixe Antwort :)
Ich habe zwischenzeitlich mal:
Code:
delete PageControl1->ActivePage;
probiert und es klappt wurderbar.


MfG M
 
Hallo,

ich habe ein weiteres Problem zum Thema.
Auf den von mir erzeugen TabSheets (sie voriges Posting, Page) liegen RichEdits. Nun möchte ich diese jeweils in eine Datei speichern.
Die Erzeugung der RichEdits erfolgt folgendermaßen:
Code:
TTabSheet *Page;
TRichEdit *RichEdit;

...
RichEdit = new TRichEdit(Page);
RichEdit->Parent = Page; 

...
RichEdit->SaveToFile(SaveDialog1->FileName);
Gebe ich das ein, wird das RichEdit des letzten erzeugen TabSheets (Page) abgepsiechert. Ich möchte aber das RichEdit des gerade aktiven TabSheets speichern.
Was muss ich im Speicherndialog angeben um das passende RichEdit zum Passenden TabSheet zu wählen?
Ist im Prinzip vergleichbar mit Internetbrowser mit Tabfunktion und Abspeichern einer gerade offenen Webseite.

Danke für eure Hilfe im Voraus.

MfG M
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück