was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews
 sonstiges ¦  tutorials ¦  Add&Win Gewinnspiel

Tips (1547)

Dateien (137)
Datenbanken (90)
Drucken (35)
Grafik (115)
IDE (21)
Indy (5)
Internet / LAN (131)
IntraWeb (0)
Mathematik (76)
Multimedia (45)
Oberfläche (107)
Objekte/
ActiveX (51)

OpenTools API (3)
Sonstiges (127)
Strings (83)
System (268)
VCL (243)

Tips sortiert nach
Komponente


Tip suchen

Tip hinzufügen

Add&Win Gewinnspiel

Werbung

25 Visitors Online


 
...eine TForm anhand seines String-Klassennamens aufrufen?
Autor: Loïs Bégué
Homepage: http://www.begue.de
[ Tip ausdrucken ]  

Tip Bewertung (3):  
     


{
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.

 

Bewerten Sie diesen Tipp:

dürftig
ausgezeichnet


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners