ComponentCount (C++)

From Appmethod Code Examples
Jump to: navigation, search

Description

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 run time, the effect will not persist. Add a second TForm and name it ComponentCount2. Put "#include ComponentCount2.cpp" in ComponentCount.h. Place a TMemo on each form and a TButton on Form1.


Code

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];
	// Move only the 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);
	}
  }
}

Uses

See Also