From Clomosy Docs

No edit summary
No edit summary
Line 40: Line 40:
     End;
     End;
    
    
    Procedure MyExpanderClick;
  Procedure MyExpanderClick;
     begin
  var
      ShowMessage(TclExpander(MyForm.clSender).Text);
     senderExpander:TclExpander;
      TclExpander(MyForm.clSender).IsExpanded := Not TclExpander(MyForm.clSender).IsExpanded;
  begin
    End;
    senderExpander := TclExpander(MyForm.clSender);
    ShowMessage(senderExpander.Text);
    senderExpander.IsExpanded := Not senderExpander.IsExpanded;
  End;
      
      
   begin  
   begin  
Line 99: Line 102:
    
    
     void MyExpanderClick;
     void MyExpanderClick;
    var
      senderExpander:TclExpander;
     {
     {
       ShowMessage(TclExpander(MyForm.clSender).Text);
       senderExpander = TclExpander(MyForm.clSender);
       TclExpander(MyForm.clSender).IsExpanded = Not TclExpander(MyForm.clSender).IsExpanded;
      ShowMessage(senderExpander.Text);
       senderExpander.IsExpanded = Not senderExpander.IsExpanded;
     }
     }
      
      

Revision as of 06:14, 12 February 2024

Included in Clomosy's library, TclExpander is an extensible panel component. TclExpander offers a panel that can hide or open its contents with the click of a title bar by the user. It is also referred to as the accordion content structure.
It is defined as variable follows.

MyExpander :TclExpander;

It is created with the "AddNewExpander" property inside the form. It gives different features to this variable with standard features.

MyExpander:= MyForm.AddNewExpander(MyForm,'MyExpander1','');
MyExpander.Align := alTop;
MyExpander.Height := 100;
MyExpander.Width := 100;

If the application is to be displayed as a drop-down menu when it is run, the IsExpanded property is set to true as follows.

MyExpander.IsExpanded := True;

The header part of the TclExpanded object can be accessed with the following line of code. Here, whichever field on the form is clicked on, the information of that object is taken.

TclExpander(MyForm.clSender).Text

Likewise, the following code can be used to change the visibility of which TclExpanded object is clicked.

TclExpander(MyForm.clSender).IsExpanded := Not TclExpander(MyForm.clSender).IsExpanded;

Example:

Base Syntax
 var
   MyForm:TclStyleForm;
   BtnSample:TclButton;
   MyVertBox:TClVertScrollBox;
   MyExpander1,MyExpander2:TclExpander;
   MyLayout1, MyLayout2:TclLayout;
   MyLabel1, MyLabel2:TclLabel;
 
   Procedure BtnSampleClick;
   Begin
     MyExpander1.IsExpanded := Not MyExpander1.IsExpanded;
     MyExpander2.IsExpanded := Not MyExpander2.IsExpanded;
   End;
  
 Procedure MyExpanderClick;
 var
   senderExpander:TclExpander;
 begin
   senderExpander := TclExpander(MyForm.clSender);
   ShowMessage(senderExpander.Text);
   senderExpander.IsExpanded := Not senderExpander.IsExpanded;
 End;
   
 begin 
   MyForm := TclStyleForm.Create(Self);
   MyForm.clSetStyle(MyForm.LightSB);
   BtnSample:= MyForm.AddNewButton(MyForm,'BtnSample','Add');
   BtnSample.Align := alTop;
   MyForm.AddNewEvent(BtnSample,tbeOnClick,'BtnSampleClick');
   
   MyVertBox:= MyForm.AddNewVertScrollBox(MyForm,'MyVertBox');
   MyVertBox.Align := alClient;
 
   MyExpander1:= MyForm.AddNewExpander(MyVertBox,'MyExpander1','');
   MyExpander1.Align := alTop;
   MyExpander1.Height := 100;
   MyForm.AddNewEvent(MyExpander1,tbeOnClick,'MyExpanderClick'); 
  
   MyLayout1:= MyForm.AddNewLayout(MyExpander1,'MyLayout1');
   MyLayout1.Align := alClient;
  
   MyLabel1:= MyForm.AddNewLabel(MyLayout1,'MyLabel1','My Expander Label Caption');
   MyLabel1.Align := alTop;
 
   MyExpander2:= MyForm.AddNewExpander(MyVertBox,'MyExpander2','');
   MyExpander2.Align := alTop;
   MyExpander2.Height := 100;
   MyForm.AddNewEvent(MyExpander2,tbeOnClick,'MyExpanderClick');
   
   MyLayout2:= MyForm.AddNewLayout(MyExpander2,'MyLayout2');
   MyLayout2.Align := alClient;
   
   MyLabel2:= MyForm.AddNewLabel(MyLayout2,'MyLabel2','My Expander Label Caption 2');
   MyLabel2.Align := alTop;
 
   MyForm.Run;
 
 end;
TRObject Syntax
 var
   MyForm:TclStyleForm;
   BtnSample:TclButton;
   MyVertBox:TClVertScrollBox;
   MyExpander1,MyExpander2:TclExpander;
   MyLayout1, MyLayout2:TclLayout;
   MyLabel1, MyLabel2:TclLabel;
 
   void BtnSampleClick;
   {
     MyExpander1.IsExpanded = Not MyExpander1.IsExpanded;
     MyExpander2.IsExpanded = Not MyExpander2.IsExpanded;
   }
  
   void MyExpanderClick;
   var
     senderExpander:TclExpander;
   {
     senderExpander = TclExpander(MyForm.clSender);
     ShowMessage(senderExpander.Text);
     senderExpander.IsExpanded = Not senderExpander.IsExpanded;
   }
   
 { 
   MyForm = TclStyleForm.Create(Self);
   MyForm.clSetStyle(MyForm.LightSB);
   BtnSample= MyForm.AddNewButton(MyForm,'BtnSample','Add');
   BtnSample.Align = alTop;
   MyForm.AddNewEvent(BtnSample,tbeOnClick,'BtnSampleClick');
   
   MyVertBox= MyForm.AddNewVertScrollBox(MyForm,'MyVertBox');
   MyVertBox.Align = alClient;
 
   MyExpander1= MyForm.AddNewExpander(MyVertBox,'MyExpander1','');
   MyExpander1.Align = alTop;
   MyExpander1.Height = 100;
   MyForm.AddNewEvent(MyExpander1,tbeOnClick,'MyExpanderClick'); 
  
   MyLayout1= MyForm.AddNewLayout(MyExpander1,'MyLayout1');
   MyLayout1.Align = alClient;
  
   MyLabel1= MyForm.AddNewLabel(MyLayout1,'MyLabel1','My Expander Label Caption');
   MyLabel1.Align = alTop;
 
   MyExpander2= MyForm.AddNewExpander(MyVertBox,'MyExpander2','');
   MyExpander2.Align = alTop;
   MyExpander2.Height = 100;
   MyForm.AddNewEvent(MyExpander2,tbeOnClick,'MyExpanderClick');
   
   MyLayout2= MyForm.AddNewLayout(MyExpander2,'MyLayout2');
   MyLayout2.Align = alClient;
   
   MyLabel2= MyForm.AddNewLabel(MyLayout2,'MyLabel2','My Expander Label Caption 2');
   MyLabel2.Align = alTop;
 
   MyForm.Run;
 
 }

Output:
TclExpanderScreen.png