11-10-2019, Saat: 15:45
Merhaba,
İstediğiniz işlemi yapmak için aşağıdaki değişiklikleri yapmanız gerekiyor:
BaseListForm.pas dosyasına aşağıdaki tanımı ekleyin:
Kullanıma örnek olsun diye de ana formdaki Button1.Click kodunu aşağıdaki gibi değiştirin:
Aynı işlemi edit sınıfları için de yapabilirsiniz.
Eğer formun sınıfını da run-time'da bulmak istiyorsanız o zaman FindClass kullanmanız gerekiyor, ama FindClass ile sınıfı bulabilmeniz için önce RegisterClass ile register etmelisiniz. Bunun için de benim tavsiyem sınıfın yazıldığı unit'in initialization kısmında yapmanızdır. Ama ben FindClass kullanmanızı tavsiye etmem, sonradan değişiklik yapması zor oluyor ve projede çalışan programcılar değiştikçe hatalar çıkmaya başlıyor.
İyi çalışmalar
İstediğiniz işlemi yapmak için aşağıdaki değişiklikleri yapmanız gerekiyor:
BaseListForm.pas dosyasına aşağıdaki tanımı ekleyin:
type // Aşağıdaki satır eklenecek TfrmBaseListFormClass = class of TFrmBaseListForm; TFrmBaseListForm = class(TForm) ...
Kullanıma örnek olsun diye de ana formdaki Button1.Click kodunu aşağıdaki gibi değiştirin:
procedure TFrmAna.Button1Click(Sender: TObject); var FormClass: TfrmBaseListFormClass; BaseListForm: TFrmBaseListForm; begin FormClass := TFrmCariListForm; Application.CreateForm(FormClass, BaseListForm); BaseListForm.ShowModal; end;
Aynı işlemi edit sınıfları için de yapabilirsiniz.
Eğer formun sınıfını da run-time'da bulmak istiyorsanız o zaman FindClass kullanmanız gerekiyor, ama FindClass ile sınıfı bulabilmeniz için önce RegisterClass ile register etmelisiniz. Bunun için de benim tavsiyem sınıfın yazıldığı unit'in initialization kısmında yapmanızdır. Ama ben FindClass kullanmanızı tavsiye etmem, sonradan değişiklik yapması zor oluyor ve projede çalışan programcılar değiştikçe hatalar çıkmaya başlıyor.
İyi çalışmalar

