-
Hello, I am trying to hide some tabsheet into into tabcontrol but cannot find to right function.
I tried many but none work, my tab and its content is still visible.
MyTab.Children[0].Visible:=false; MyTab.TC_Pages[0].Visible:=false; TabPage_0.Visible:=false;
All thoses are unefficient.
Regards.
-
TabControl create some TKOLPanels, like TabControl_Tab1. Use TabControl_Tab1.visible := false
-
TabPage_0 is the name of one of the TKolPanel tab inside TabControl so TabPage_0.Visible:=false; was supposed to do it but it stay visible.
-
TC_Remove
-
TC_Remove is not good solution for me as it destroy all controls inside the pane so to make it reapper again I must do a TC_Insert and recreate all its content.
I just want to show/hide tabs as VCL TabSheet.visible do.
-
> it destroy all controls inside the pane
It does not. What version of KOL you use? var p: PControl; s: string;
begin
s:= TabControl1.TC_Items[0];
p := TabControl1.TC_Remove(0);
TabControl1.TC_InsertControl(0,s,0,p);
end;
-
OK that's a workaround, but not very easy to use and will be more complicated if I have to manage more than two tabs, here what I do :
OnFormShow :
sSheetHTTP := TabControlExternalDataGrabber.TC_Items[0]; pSheetHTTP := TabControlExternalDataGrabber.TC_Pages[0]; sSheetFile := TabControlExternalDataGrabber.TC_Items[1]; pSheetFile := TabControlExternalDataGrabber.TC_Pages[1]; TabControlExternalDataGrabber.TC_Remove(1); //keep only first one at startup
Then in have a list inwhich I click and depending which entry I select SheetHTTP or SheetFile will be showed/hidden (other sheets ar visible but will not need to switch visible/invisible) :
if want to to show sheetHTTP and hide sheetFile :
TabControlExternalDataGrabber.TC_Remove(0); TabControlExternalDataGrabber.TC_InsertControl(0,sSheetHTTP,0,pSheetHTTP);
or do invert :
TabControlExternalDataGrabber.TC_Remove(0); TabControlExternalDataGrabber.TC_InsertControl(0,sSheetFile,0,pSheetFile);
That works but so many lines for a "so simple" .visible VCL-like property :-(
|