From Clomosy Docs

No edit summary
No edit summary
Line 1: Line 1:
To find another component under a component or form, clFindComponent is used. This method allows you to search for a specific named subcomponent. This allows making changes to the properties of the found component.  
To find another component under a component or form, clFindComponent is used. This method allows you to search for a specific named subcomponent. This allows making changes to the properties of the found component.  


  MyForm.clFindComponent(xObjectName : String)
  MyForm.clFindComponent(xObjectName : String): TComponent;


Within this feature, a string parameter is accepted, and this parameter is the name of the variable.
Within this feature, a string parameter is accepted, and this parameter is the name of the variable.
Line 9: Line 9:


:'''Base Syntax'''
:'''Base Syntax'''
   Var   
   Var   
  MyForm:TclForm;
    MyForm:TclForm;
  mainPnl : TclProPanel;
    mainPnl : TclProPanel;
  testBtn : TClProButton;
    testBtn : TClProButton;
  i : Integer;
    i,j : Integer;
  objectName:string;
    Combo1 : TClComboBox;
    
    
  procedure GetName;
  procedure ComboSelected;
  var
  var
    clickedBtn:TClProButton;
    strKey : String;
  begin
    strKey := Combo1.GetItemIndex(Combo1.ItemIndex);
  if Combo1.ItemIndex <> '0' then
   begin
   begin
    clickedBtn := TClProButton(Myform.Clsender);
    TClProButton(MyForm.clFindComponent(strKey)).Caption := strKey+'+';
    TClProButton(MyForm.clFindComponent(clickedBtn.Caption)).Caption := clickedBtn.Caption+'+';
    TClProButton(MyForm.clFindComponent(strKey)).Enabled := false;
    clickedBtn.Enabled := false;
   end;
   end;
    
   end;
   begin
   begin
  MyForm:=TclForm.Create(self);
    MyForm :=TclForm.Create(self);
  mainPnl:=MyForm.AddNewProPanel(MyForm,'mainPnl');
   
  clComponent.SetupComponent(mainPnl,'{"Align" : "Center","Width" :200,  
    Combo1 := MyForm.AddNewComboBox(MyForm,'Combo1');
  "Height":300,"RoundHeight":10,"RoundWidth":10,"BorderColor":"#3a32a8","BorderWidth":2}');
    Combo1.Align := alMostTop;
 
    Combo1.Height := 20;
  for i := 0 to 4 do
    Combo1.Margins.Top:=10;
  begin
    Combo1.Margins.Left :=MyForm.clWidth/9;
  testBtn := MyForm.AddNewProButton(mainPnl,'testBtn'+IntToStr(i+1),<nowiki>''</nowiki>);
    Combo1.Margins.Right :=MyForm.clWidth/9;
  clComponent.SetupComponent(testBtn,'{"caption":"testBtn'+IntToStr(i+1)+'","Align" : "Top","MarginTop":5,"MarginLeft":5,"MarginRight":5,
   
  "Height":50}');
    Combo1.AddItem('Please select the button to be marked.','0');
  MyForm.SetImage(testBtn,'https://clomosy.com/demos/foodInformationBox.png');  
    for j := 1 to 5 do
      Combo1.AddItem('testBtn'+IntToStr(j),IntToStr(j));
    MyForm.AddNewEvent(Combo1,tbeOnChange,'ComboSelected');
   
   
    mainPnl:=MyForm.AddNewProPanel(MyForm,'mainPnl');
    clComponent.SetupComponent(mainPnl,'{"Align" : "Center","Width" :200,  
    "Height":300,"RoundHeight":10,"RoundWidth":10,"BorderColor":"#3a32a8","BorderWidth":2}');
   
    for i := 0 to 4 do
    begin
      testBtn := MyForm.AddNewProButton(mainPnl,'testBtn'+IntToStr(i+1),<nowiki>''</nowiki>);
      clComponent.SetupComponent(testBtn,'{"caption":"testBtn'+IntToStr(i+1)+'","Align" : "Top","MarginTop":5,"MarginLeft":5,"MarginRight":5,
      "Height":50}');
      MyForm.SetImage(testBtn,'https://clomosy.com/demos/foodInformationBox.png');
    end;
      
      
     MyForm.AddNewEvent(testBtn,tbeOnClick,'GetName');
     MyForm.Run;
  end;
 
  MyForm.Run;
   end;
   end;


:'''TRObject Syntax:'''
:'''TRObject Syntax:'''
   Var   
   Var   
  MyForm:TclForm;
    MyForm:TclForm;
  mainPnl : TclProPanel;
    mainPnl : TclProPanel;
  testBtn : TClProButton;
    testBtn : TClProButton;
  i : Integer;
    i,j : Integer;
  objectName:string;
    Combo1 : TClComboBox;
    
    
  void GetName;
  void ComboSelected;
  var
  var
    clickedBtn:TClProButton;
    strKey : String;
  {
    strKey = Combo1.GetItemIndex(Combo1.ItemIndex);
  if (Combo1.ItemIndex <> '0')
   {
   {
    clickedBtn = TClProButton(Myform.Clsender);
    TClProButton(MyForm.clFindComponent(strKey)).Caption = strKey+'+';
    TClProButton(MyForm.clFindComponent(clickedBtn.Caption)).Caption = clickedBtn.Caption+'+';
    TClProButton(MyForm.clFindComponent(strKey)).Enabled = false;
    clickedBtn.Enabled = false;
   }
   }
    
   }
   {
   {
  MyForm=TclForm.Create(self);
    MyForm=TclForm.Create(self);
  mainPnl=MyForm.AddNewProPanel(MyForm,'mainPnl');
   
  clComponent.SetupComponent(mainPnl,'{"Align" : "Center","Width" :200,  
    Combo1 = MyForm.AddNewComboBox(MyForm,'Combo1');
  "Height":300,"RoundHeight":10,"RoundWidth":10,"BorderColor":"#3a32a8","BorderWidth":2}');
    Combo1.Align = alMostTop;
 
    Combo1.Height = 20;
  for (i = 0 to 4)
    Combo1.Margins.Top=10;
  {
    Combo1.Margins.Left =MyForm.clWidth/9;
  testBtn = MyForm.AddNewProButton(mainPnl,'testBtn'+IntToStr(i+1),<nowiki>''</nowiki>);
    Combo1.Margins.Right =MyForm.clWidth/9;
  clComponent.SetupComponent(testBtn,'{"caption":"testBtn'+IntToStr(i+1)+'","Align" : "Top","MarginTop":5,"MarginLeft":5,"MarginRight":5,
   
  "Height":50}');
    Combo1.AddItem('Please select the button to be marked.','0');
  MyForm.SetImage(testBtn,'https://clomosy.com/demos/foodInformationBox.png');  
    for (j = 1 to 5)
      Combo1.AddItem('testBtn'+IntToStr(j),IntToStr(j));
    MyForm.AddNewEvent(Combo1,tbeOnChange,'ComboSelected');
   
   
    mainPnl=MyForm.AddNewProPanel(MyForm,'mainPnl');
    clComponent.SetupComponent(mainPnl,'{"Align" : "Center","Width" :200,  
    "Height":300,"RoundHeight":10,"RoundWidth":10,"BorderColor":"#3a32a8","BorderWidth":2}');
   
    for (i = 0 to 4)
    {
      testBtn = MyForm.AddNewProButton(mainPnl,'testBtn'+IntToStr(i+1),<nowiki>''</nowiki>);
      clComponent.SetupComponent(testBtn,'{"caption":"testBtn'+IntToStr(i+1)+'","Align" : "Top","MarginTop":5,"MarginLeft":5,"MarginRight":5,
      "Height":50}');
      MyForm.SetImage(testBtn,'https://clomosy.com/demos/foodInformationBox.png');  
    }
      
      
     MyForm.AddNewEvent(testBtn,tbeOnClick,'GetName');
     MyForm.Run;
  }
 
  MyForm.Run;
   }
   }


= See Also=
= See Also=
* [[Controls| Controls]]
* [[Controls| Controls]]

Revision as of 14:30, 10 May 2024

To find another component under a component or form, clFindComponent is used. This method allows you to search for a specific named subcomponent. This allows making changes to the properties of the found component.

MyForm.clFindComponent(xObjectName : String): TComponent;

Within this feature, a string parameter is accepted, and this parameter is the name of the variable.

Example:
In the example, we can determine which of the multiple buttons created using the clSender feature we clicked on and change the button text using the clFindComponent property.

Base Syntax
 Var  
   MyForm:TclForm;
   mainPnl : TclProPanel;
   testBtn : TClProButton;
   i,j : Integer;
   Combo1 : TClComboBox;
 
 procedure ComboSelected;
 var
   strKey : String;
 begin
   strKey := Combo1.GetItemIndex(Combo1.ItemIndex);
  if Combo1.ItemIndex <> '0' then
  begin
   TClProButton(MyForm.clFindComponent(strKey)).Caption := strKey+'+';
   TClProButton(MyForm.clFindComponent(strKey)).Enabled := false;
  end;
 end;
 begin
   MyForm :=TclForm.Create(self);
   
   Combo1 := MyForm.AddNewComboBox(MyForm,'Combo1');
   Combo1.Align := alMostTop;
   Combo1.Height := 20;
   Combo1.Margins.Top:=10;
   Combo1.Margins.Left :=MyForm.clWidth/9;
   Combo1.Margins.Right :=MyForm.clWidth/9;
   
   Combo1.AddItem('Please select the button to be marked.','0');
   for j := 1 to 5 do
     Combo1.AddItem('testBtn'+IntToStr(j),IntToStr(j));
   MyForm.AddNewEvent(Combo1,tbeOnChange,'ComboSelected');
   
   
   mainPnl:=MyForm.AddNewProPanel(MyForm,'mainPnl');
   clComponent.SetupComponent(mainPnl,'{"Align" : "Center","Width" :200, 
   "Height":300,"RoundHeight":10,"RoundWidth":10,"BorderColor":"#3a32a8","BorderWidth":2}');
   
   for i := 0 to 4 do
   begin
     testBtn := MyForm.AddNewProButton(mainPnl,'testBtn'+IntToStr(i+1),'');
     clComponent.SetupComponent(testBtn,'{"caption":"testBtn'+IntToStr(i+1)+'","Align" : "Top","MarginTop":5,"MarginLeft":5,"MarginRight":5,
     "Height":50}');
     MyForm.SetImage(testBtn,'https://clomosy.com/demos/foodInformationBox.png'); 
   end;
   
   MyForm.Run;
 end;
TRObject Syntax:
 Var  
   MyForm:TclForm;
   mainPnl : TclProPanel;
   testBtn : TClProButton;
   i,j : Integer;
   Combo1 : TClComboBox;
 
 void ComboSelected;
 var
   strKey : String;
 {
   strKey = Combo1.GetItemIndex(Combo1.ItemIndex);
  if (Combo1.ItemIndex <> '0')
  {
   TClProButton(MyForm.clFindComponent(strKey)).Caption = strKey+'+';
   TClProButton(MyForm.clFindComponent(strKey)).Enabled = false;
  }
 }
 {
   MyForm=TclForm.Create(self);
   
   Combo1 = MyForm.AddNewComboBox(MyForm,'Combo1');
   Combo1.Align = alMostTop;
   Combo1.Height = 20;
   Combo1.Margins.Top=10;
   Combo1.Margins.Left =MyForm.clWidth/9;
   Combo1.Margins.Right =MyForm.clWidth/9;
   
   Combo1.AddItem('Please select the button to be marked.','0');
   for (j = 1 to 5)
     Combo1.AddItem('testBtn'+IntToStr(j),IntToStr(j));
   MyForm.AddNewEvent(Combo1,tbeOnChange,'ComboSelected');
   
   
   mainPnl=MyForm.AddNewProPanel(MyForm,'mainPnl');
   clComponent.SetupComponent(mainPnl,'{"Align" : "Center","Width" :200, 
   "Height":300,"RoundHeight":10,"RoundWidth":10,"BorderColor":"#3a32a8","BorderWidth":2}');
   
   for (i = 0 to 4)
   {
     testBtn = MyForm.AddNewProButton(mainPnl,'testBtn'+IntToStr(i+1),'');
     clComponent.SetupComponent(testBtn,'{"caption":"testBtn'+IntToStr(i+1)+'","Align" : "Top","MarginTop":5,"MarginLeft":5,"MarginRight":5,
     "Height":50}');
     MyForm.SetImage(testBtn,'https://clomosy.com/demos/foodInformationBox.png'); 
   }
   
   MyForm.Run;
 }

See Also