DELPHI 關於 Style 的幾點

Delphi xe2以前的樣式或風格編輯器叫vcl Style 之後改爲 BMP Style,同時支持VCL和FMX,Delphi本身的設計是超前的,在多年後其他的語言或環境裏纔有類似的技術,比如微軟的WPF的XMAL相關思想,以及android Studio 相關的界面方案。

這裏提到的是這個配置怎麼生效,在IDE模式下如果是App(各種含界面的應用),直接在應用程序選項中的“Appearance”-外貌中選擇即可。

imageimage

但是如果界面包含在動態庫 比如dll中就沒有這個選項了!

Google、百度、Bing之後統一的結論是可以的!

https://www.e-learn.cn/topic/2650756

https://stackoverflow.com/questions/9703309/vcl-styles-embedded-in-dll

總結:

觀察正常的exe 文件的項目配置文件即 .dproj文件,是不是平時不在意呀!在屬性組 <PropertyGroup Condition="'$(Base)'!=''">

image

<Custom_Styles>Sky|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Sky.vsf;Obsidian|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Obsidian.vsf;Silver|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Silver.vsf</Custom_Styles>

將該句相關內容更寫到 Dll 的 .dproj文件中,可能是如下形式。

image

這樣在系統編譯時樣式資源就打到程序裏面了!

DLL中用對應的樣式資源的!

image

即在初始化段或Create中指定樣式,並斷開與主應用的關係,據說不斷開會AV。

TStyleManager.TrySetStyle('Sky', False);
TCustomStyleEngine.UnRegisterSysStyleHook('#32768', TSysPopupStyleHook);

運行後的效果(說明主窗體是Obsidian,插件窗體是Sky)

image

                                                    ---End---

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章