TFormClass ın değişken bir string ile kullanılması
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
TFormClass ın değişken bir string ile kullanılması
TformClass a değişken bir string atayabilir miyim ? Bunun strtoint gibi bir atama komutu var mı?
Merhaba,
şeklinde tanımlanmıştır. yani bu tipe tayacağınız değerler TForm sınıfı ve alt sınıfları olmak zorundadır. Elinizdeki string değerini kullarak
gibi bir kod ile itediğinizi yapabilirsiniz. Eğer FindClass belirrtiğiniz isimde bir sınıf bulamazsa nil döndürecektir, bu durumda da gerekli önlemleri almalısınız
Kod: Tümünü seç
TFormClass = class of TForm
Kod: Tümünü seç
var
FC : TFormClass;
begin
FC := TFormClass(FindClass(FormClassString));
end;
Aslında kısayol tuşlarını kullanıcılara göre atamalar yapıp kullanmak istiyorum. O yüzden program isimlerini table dan alıp çalıştırmam gerekiyor. Find ile bulamazsam diye düşünüyorum .
Denemek istedim ama TformClass a atama yapamadım.
FC : TFormClass
FC1 : Tform
Yani FC := 'T' + TABLEPGMNAME.AsString
FC1 := TABLEPGMNAME.AsString
daha sonrada application.createform(FC, FC1) gibi
Denemek istedim ama TformClass a atama yapamadım.
FC : TFormClass
FC1 : Tform
Yani FC := 'T' + TABLEPGMNAME.AsString
FC1 := TABLEPGMNAME.AsString
daha sonrada application.createform(FC, FC1) gibi
Yapmanız gerekenler:
Açılacak formların ünitelerinin sonuna:
ekleyin.
İstediğiniz formu açmak için ise
kodunu kullanabilirsiniz
Açılacak formların ünitelerinin sonuna:
Kod: Tümünü seç
initialization
RegisterClass(TForm2); // Form Adı
finalization
UnRegisterClass(TForm2);
İstediğiniz formu açmak için ise
Kod: Tümünü seç
var
ActiveForm: TForm;
Str : String;
begin
Str := 'Form2';
Application.CreateForm(TFormClass(FindClass('T'+Str)),activeform);
activeForm.ShowModal;
end;