RAD Studio VCL Reference
|
Indicates the number of components owned by the component.
property ComponentCount: Integer;
__property int ComponentCount;
Use the ComponentCount property to determine the number of components owned by a component, for example, when iterating through the components list to perform some action on all owned components. The ComponentCount property equals the number of items in the components list. This value is one more than the highest Components index, because the first components index is 0.
C++ Examples:
/* This code fragment moves any nonvisual components on the form into a separate data module. Note that the components are removed starting with the last component, so that the unprocessed portion of the Components array does not change. Note: This code does not save the form or data module to disk after the nonvisual components are moved. If executed at runtime, the effect will not persist. Add a second TForm and name it ComponentCount2. Put "#include ComponentCount2.cpp" in ComponentCount.h. Place a TMemo in each form and a TButton in Form1. */ void __fastcall TForm1::Button1Click(TObject *Sender) { int I; TComponent *Temp; Memo1->Lines->Add("Components removed: "); Form2->Memo1->Lines->Add("Components added: "); for (I = ComponentCount - 1; I >= 0; I--) { Temp = Components[I]; // only move components that are not controls if (dynamic_cast<TControl *>(Temp) == NULL) { RemoveComponent(Temp); Memo1->Lines->Add(Temp->Name); Form2->InsertComponent(Temp); Form2->Memo1->Lines->Add(Temp->Name); } } }
Delphi Examples:
{ This code fragment moves any nonvisual components on the form into a separate data module. Note that the components are removed starting with the last component, so that the unprocessed portion of the Components array does not change. Note: This code does not save the form or data module to disk after the nonvisual components are moved. If executed at runtime, the effect will not persist. Add a second TForm and name it ComponentCount2. Put "ComponentCount2" at the end of the uses clause of Form1. Place a TMemo in each form and a TButton in Form1. } procedure TForm1.Button1Click(Sender: TObject); var I: Integer; Temp: TComponent; begin Form1.Memo1.Lines.Add('Components removed: '); Form2.Memo1.Lines.Add('Components added: '); for I := ComponentCount - 1 downto 0 do begin Temp := Components[I]; if not (Temp is TControl) then begin RemoveComponent(Temp); Form1.Memo1.Lines.Add(Temp.Name); Form2.InsertComponent(Temp); Form2.Memo1.Lines.Add(Temp.Name); end; end; end;
Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
|
What do you think about this topic? Send feedback!
|