2013-04-06 41 views
0

我使用delphi 7和我的項目有很多可用的形式。 我試圖執行application.component[i].classname以獲取所有可用的表單類名,但我只獲取創建的表單類名的列表。如何列出所有可用的形式在德爾福7

有沒有辦法讓項目的所有可用表單類名列表框?

+1

什麼樣的程序,你做,你不能跟蹤哪些形式的你做? – 2013-04-06 20:03:37

+0

@david:複雜,但我必須解決它,謝謝。 – AsepRoro 2013-04-06 20:17:43

回答

2

你可以使用內置的類註冊。

  • 通過致電RegisterClass(TMyForm)註冊您所有的表格課程。從初始化部分執行此操作,通常是定義類的單元。
  • 如果要恢復從註冊表中類,調用FindClass傳遞的類名。
  • 爲安全起見,請檢查FindClass返回從TForm繼承的類。
  • 最後創建使用兩種Application.CreateForm或只是調用類的Create虛擬構造形式實例。

實例化看起來是這樣的:

var 
    MyClass: TPersistentClass; 
    Form: TForm; 
.... 
MyClass := FindClass(ClassName); 
if MyClass.InheritsFrom(TForm) then 
    Form := TFormClass(MyClass).Create(AnOwner); 
+0

+1我會檢查返回的類繼承自TCustomForm,以防萬一... – 2013-04-07 09:12:59