New Tip - ...show a TForm with its Classname ?

  • From: "SwissDelphiCenter.ch" <newsletter@xxxxxxxxxxxxxxxxxxxx>
  • To: sdcnewtip@xxxxxxxxxxxxx
  • Date: Sun, 10 Mar 2002 08:47:14 +0100

* SwissDelphiCenter new Tip newsletter
* www.swissdelphicenter.ch
*
* To unsubscribe send a mail to sdcnewtip-request@xxxxxxxxxxxxx with the
* subject unsubscribe


Hallo,

Folgender neuer Tip ist neu auf SwissDelphiCenter verfügbar:

Besuchen Sie die Programmier Tips unter 
http://www.swissdelphicenter.ch/de/tipsindex.php


Bewerten Sie diesen Tip nach Schwierigkeitsgrad, Nützlichkeit und Gesamthaft auf
http://www.swissdelphicenter.ch/de/showcode.php?id=1030



Autor:
Loïs Bégué <delphi@xxxxxxxx>
www.begue.de


-------------
...eine TForm anhand seines String-Klassennamen aufrufen ?
-------------
Kategorie: VCL



{
   Möchten Sie z.B einen Formular mit einer Prozedure initialisieren bzw. 
   anzeigen ohne Type-informationen oder classreferenzen übergeben zu müssen?
   Dies geht sowohl im Programmcode als auch zur Laufzeit.

   Dabei gilt z.B.: bei Formulare werden die von Delphi angelegten globalen 
   Variablen bzw. die automatische Erzeugung im Hauptprogramm überflüssig:

   Die Anbindung der Units und die RegisterClasses(...) sind notwendig!!!
}

{
   You may wish to initialise some descendant of a given class (runtime / 
   designtime) using a simple procedure but without passing Type 
   information of a specified class to it and thus stay flexible?

   You can deal with the global variable of your forms as you wish, 
   you'll never need them again...

   You just need to bind your form units and to register your classes
   (Delphi won't, if you delete the global vars).
}
Uses MyFormOne, MyFormTwo;

Procedure ShowOneOfMyForm( FormClassName: String );   
Begin
     With TFormClass(FindClass(FormClassName)).Create(Application) do
     try
       ShowModal;
     finally
       Free;
     end;
End;

{ Geben Sie z.B. "TMyFormTwo" in dem TEdit und clicken Sie auf dem Knopf }
{ How to use it? Give "TMyFormTwo" in a TEdit and click the TButton...}
procedure TForm1.btShowMyFormClick(Sender: TObject);
begin
     //at runtime
     ShowOneOfMyForm(InputEdit.Text);     
     // or directly in your code 
     ShowOneOfMyForm('TMyFormOneF');
end;

Initialization
   RegisterClasses(  [ TMyFormOneF, TMyFormTwoF ] );
end.





Best Regards
SwissDelphiCenter Team
www.swissdelphicenter.ch
[automatisch generierte EMail]


----------------------------------------------------
ENGLISH NEWSLETTER
----------------------------------------------------

Hi,

This new tip is new available on SwissDelphiCenter.ch:

Visit the programming tips at http://www.swissdelphicenter.ch/en/tipsindex.php


Rate this tip after skill, useful and overall at
http://www.swissdelphicenter.ch/en/showcode.php?id=1030



Author:
Loïs Bégué <delphi@xxxxxxxx>
www.begue.de


-------------
...show a TForm with its Classname ?
-------------
Category: VCL



{
   Möchten Sie z.B einen Formular mit einer Prozedure initialisieren bzw. 
   anzeigen ohne Type-informationen oder classreferenzen übergeben zu müssen?
   Dies geht sowohl im Programmcode als auch zur Laufzeit.

   Dabei gilt z.B.: bei Formulare werden die von Delphi angelegten globalen 
   Variablen bzw. die automatische Erzeugung im Hauptprogramm überflüssig:

   Die Anbindung der Units und die RegisterClasses(...) sind notwendig!!!
}

{
   You may wish to initialise some descendant of a given class (runtime / 
   designtime) using a simple procedure but without passing Type 
   information of a specified class to it and thus stay flexible?

   You can deal with the global variable of your forms as you wish, 
   you'll never need them again...

   You just need to bind your form units and to register your classes
   (Delphi won't, if you delete the global vars).
}
Uses MyFormOne, MyFormTwo;

Procedure ShowOneOfMyForm( FormClassName: String );   
Begin
     With TFormClass(FindClass(FormClassName)).Create(Application) do
     try
       ShowModal;
     finally
       Free;
     end;
End;

{ Geben Sie z.B. "TMyFormTwo" in dem TEdit und clicken Sie auf dem Knopf }
{ How to use it? Give "TMyFormTwo" in a TEdit and click the TButton...}
procedure TForm1.btShowMyFormClick(Sender: TObject);
begin
     //at runtime
     ShowOneOfMyForm(InputEdit.Text);     
     // or directly in your code 
     ShowOneOfMyForm('TMyFormOneF');
end;

Initialization
   RegisterClasses(  [ TMyFormOneF, TMyFormTwoF ] );
end.




Best Regards
SwissDelphiCenter Team
www.swissdelphicenter.ch
[automatic generated EMail]

Other related posts:

  • » New Tip - ...show a TForm with its Classname ?