ComponentCount (C++)

From RAD Studio 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