ClassesGetClass (C++)

From RAD Studio Code Examples
Jump to: navigation, search

Description

The following example allows you to type the name of a graphics class into an edit control; when a button is pressed, the name of the default extension for that class is displayed in another edit control. In the form's OnCreate event handler (or a similar place), you must register the graphics classes so that GetClass can find them.

Code

#include <memory>       //For STL auto_ptr class

TMetaClass *MetaClass;

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  std::auto_ptr<TClassFinder> myClassFinder(new TClassFinder(MetaClass, False));
  TGraphicClass mygraphclass = (TGraphicClass) (myClassFinder->GetClass(Edit2->Text));
//  TGraphicClass mygraphclass = (TGraphicClass) GetClass(Edit2->Text);
  Edit1->Text = GraphicExtension(mygraphclass);
}

__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
  MetaClass = __classid(TIcon); // ico
  RegisterClasses(&MetaClass, 0);
  MetaClass = __classid(Graphics::TBitmap); // bmp
  RegisterClasses(&MetaClass, 0);
  MetaClass = __classid(TMetafile); // emf
  RegisterClasses(&MetaClass, 0);
  MetaClass = __classid(TShape);  // no graphic extension
  RegisterClasses(&MetaClass, 0);
  MetaClass = __classid(TImage); // no graphic extension
  RegisterClasses(&MetaClass, 0);
}

Uses

See Also