[問題] 請較VCL中USEFORM巨集的用意

作者: z1976 (z1976)   2015-04-28 13:41:50
我的程式做了一個TLayoutableMainForm class衍生自主視窗 TMainForm
(我們的MainForm上有一些元件陣列,會依據user的選擇重新動態排列,變換隊形;
但這功能加下去後.cpp的程式碼變很長,所以才想衍生一個class專門處理這件事)
class TLayoutableMainForm : public TMainForm
要使用這個TLayoutableMainForm ,在程式進入點的.cpp檔上面
USEFORM(TMainForm.cpp, MainForm); // 原本的
要改成
USEFORM(TLayoutableMainForm.cpp, LayoutableMainForm);
主程式裡面:
Application->CreateForm(__classic(TLayoutableMainForm), &LayoutableMainFortm);
這樣程式就可以跑。不知道個USEFORM在幹嘛,GOOGLE一下,似乎只是相當於這樣的宣告.
..
exetern TLayoutableMainForm* LayoutableMainForm;
如果我把USEFORM拿掉,自己宣告一個TLayoutableMainForm指標也可以Run
(因為不想要這麼長的變數名稱)
exetern TLayoutableMainForm* MainForm ;
當然在某一個cpp檔需要實際宣告MainForm的實體,然後把MainForm當參數丟給CreateFor
m,這樣也可以跑 (目前只有空殼,無法測試其他功能)
只是不曉得USEFORM還有沒有其他的意義? 會不會影響VCL架構運作?

Links booklink

Contact Us: admin [ a t ] ucptt.com