Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Aktives Tabsheet auf Buttonklick entfernen (https://www.delphipraxis.net/12620-aktives-tabsheet-auf-buttonklick-entfernen.html)

Cluxie 1. Dez 2003 09:25


Aktives Tabsheet auf Buttonklick entfernen
 
Folgendes:
Ich programmiere einen Browser und um ähnlich wie bei Opera mehrere Fenster anzeigen zu können benutze ich eine Pagecontrol. Mit einem Button erstelle ich ein neues Tabsheet und darin einen webbrowser, mit einem zweiten soll das aktive Tabsheet wieder gelöscht werden (Komplett - nicht nur der Inhalt)

Der Code sieht momentan so aus:

Delphi-Quellcode:
...

var
  Main_Form: TMain_Form;
  startpage: string;
  TabSheet : TTabSheet;
  webbrowser : twebbrowser;

...

procedure TMain_Form.NewPage_ButtonClick(Sender: TObject);
begin
TabSheet:=TTabSheet.Create(Self);
  with TabSheet do
  begin
  Align:= alCLient;
  Parent:=TabSheet1;
  end;
TabSheet.Caption:=('leere Seite');
TabSheet.PageControl:=PageControl1;
//Webbrowser auf diesem Tabsheet erstellen
webbrowser:=TWebBrowser.Create(TabSheet);
webbrowser.Align:=alClient;
TOLEControl(webbrowser).Parent:=TabSheet;

end;

procedure TMain_Form.ClosePage_ButtonClick(Sender: TObject);
begin
removecontrol(tabsheet.parent);
end;
...
Wenn ich nun auf den "Entfernen" Button klicke wird nicht das momentan aktive Tabsheet entfernt sondern die komplette Pagecontrol Unit. Wo in meinem Code liegt der Knackpunkt ?
:(

Danke im Vorraus

s14 1. Dez 2003 11:29

Re: Aktives Tabsheet auf Buttonklick entfernen
 
Hallo,
Du entfernst ja auch die Komponente PageControl1 als Parent vom TabSheet :gruebel:

Es sollte besser etwas wie

Delphi-Quellcode:
PageControl1.ActivePage.Free;
verwendet werden.

Warum wird eigentlich der Parent von TabSheet auf TabSheet1 gesetzt?
Ich habs mal so geändert :wink:

Delphi-Quellcode:
TabSheet:=TTabSheet.Create(Self);
  with TabSheet do
  begin
    Align:= alCLient;
//    Parent:=TabSheet1;
    Parent := PageControl1;
    Caption:=('leere Seite');
    PageControl:=PageControl1;
  end;

//Webbrowser auf diesem Tabsheet erstellen
webbrowser:=TWebBrowser.Create(TabSheet);
webbrowser.Align:=alClient;
TOLEControl(webbrowser).Parent:=TabSheet;

Gruss
s14

Cluxie 1. Dez 2003 11:41

Re: Aktives Tabsheet auf Buttonklick entfernen
 
Jap, das war der Fehler, danke :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz