對delphi很熟悉的人,都知道mdi視窗的建立方式,是將主視窗的formstyle設定成mdiform,然後將各個要設定成mdi的視窗的formstyle都設定成mdichild,執行就可以看到效果了嘿。
但是,如果mdi子視窗的依附視窗不是主視窗呢?此時是否依然能夠建立mdi應用程式呢?事實證明是不行的,通過看forms單元的原始碼中的createwindowhandle這個我們可以看到這樣幾句**
如果視窗樣式為mdichild的,先檢視mainform的clienthandle是否為0,也就是說被侷限在了
於是寫下
property mainform: tform read fmainform;
那麼是否就無策了呢?細心的同志們仔細觀察一下應該是可以發現的mainform指向的是fmainform,也就是說mainform就是fmainform的位址對映,那麼我們就可以通過指標來達到這個修改的目的了哈哈
那麼就可以這樣
varp: pinteger;
begin
end;
然後我們就可以建立mdi子視窗了,呵呵
具體如下:
僅供研究,使用請慎重。沒做任何測試。
Delphi非應用程式主視窗建立MDI
對delphi很熟悉的人,都知道mdi視窗的建立方式,是將主視窗的formstyle設定成mdiform,然後將各個要設定成mdi的視窗的formstyle都設定成mdichild,執行就可以看到效果了嘿。但是,如果mdi子視窗的依附視窗不是主視窗呢?此時是否依然能夠建立mdi應用程式呢?事實證明是...
Delphi非應用程式主視窗建立MDI
對delphi很熟悉的人,都知道mdi視窗的建立方式,是將主視窗的formstyle設定成mdiform,然後將各個要設定成mdi的視窗的formstyle都設定成mdichild,執行就可以看到效果了嘿。但是,如果mdi子視窗的依附視窗不是主視窗呢?此時是否依然能夠建立mdi應用程式呢?事實證明是...
qt應用程式主視窗
qmainwindow視窗可以包含選單欄 工具欄 狀態列 標題欄等,是最常見的視窗形式,可以作為gui程式的主視窗 1 設定選單 setmenubar方法 標頭檔案 qmenubar 2 設定工具欄 add 方法 標頭檔案 q 3 設定可停靠部件 adddockwidget qmainwindow的...