Létrehozása formában egy húr delphi
Van egy módja annak, hogy hozzon létre egy példányt a forma vonal nevét. Például, ha van TMyForm vonalon. Az új űrlaptípusok TMyForm jön létre.
Tegyük fel, hogy van néhány kapcsolódó formáit az alkalmazásban (mint valószínűleg az összes do). Persze, sok ilyen formák létrehozása dinamikusan futásidőben (eltávolították a listán a „Avtosozdavaemyh formák” a projekt tulajdonságait ablakban).
Tegyük fel, hogy van egy formája az úgynevezett myForm osztály TMyForm, szeretne létrehozni. Ahhoz, hogy hozzon létre egy űrlapot myForm például a futás, akkor használja a következő kódot (mutatni a modális és engedje meg, ha zárva van).
Vagy lehet, hogy az alkalmazás tulajdonosa myForm formában írja le a parancsot, mint ez:
Most mi van, ha „nem tudom”, hogy pontosan milyen típusú osztály objektum alakját? Mi van, ha egyébként a string változó van neve átutalás formájában osztályt TMyForm. Nem fogja tudni használni a minta kódját fent látható. Application.CreateForm elvárja egy változó típusú TFormClass. helyett egy string.
Akkor valószínűleg nem lesz képes használni TMyForm.Create (.)!
Egy új példány formájában a sor
Megjegyezzük, hogy Application.CreateForm () eljárás elvárja egy változó típusú TFormClass az első paraméter. Ha tudjuk átadni típusú változó TFormClass (a vonal), akkor képes lesz arra, hogy hozzon létre egy űrlapot az ő nevében!
Funkció FindClass () Delphi kap az osztály típusát egy string. Keresi járó összes regisztrált osztályok. A regisztrációhoz egy osztály, RegisterClass () eljárás indítható. Ha a függvény egy értéket FindClass TPersistentClass. átadjuk azt TFormClass és egy új TForm objektumot lehet létrehozni!
Hozzon létre egy új projektet, és nevét Delphi fő formája MainForm (Megadott). Adjunk hozzá három új formája a projekthez, és nevezzük őket: FirstForm (TFirstForm). SecondForm (TSecondForm) és ThirdForm (TThirdForm).
Távolítsa el őket avtosozdannyh formák a projekt tulajdonságait. Ezután tegyük a ListBox MainForm és hozzá a három vonal (TFistForm, TSecondForm, TThirdForm).
Abban az esetben, OnCreate MainForm rögzített osztályok:
Amint a gombra kattintva, megtaláljuk a nevét a kiválasztott forma és hívja CreateFormFromName eljárás:
Ha az első elem ki van választva, akkor a változó „s” fogja tartalmazni az értéket „TFirstForm”. CreateFormFromName esemény létrehoz egy példányt a forma TFirstForm: