Delphi非應用程式主視窗建立MDI

2021-04-28 11:00:29 字數 581 閱讀 6898

對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的...