哪位朋友能指點下,程式和控制元件界面顯示的大小,怎么能不受系統解析度縮放百分比影響?
uj5u.com熱心網友回復:
對于VCL應用,用一個常量保存設計時的DPI,比如const DesignTimeDPI = 96; 然后在Form的Create事件里寫上ScaleBy(DesignTimeDPI, PixelsPerInch);uj5u.com熱心網友回復:
按大神說的這樣修改,還是沒有效果,設計時的解析度和另一臺使用的機器解析度是一樣的,都是1920x1080 ,只是使用的機器系統縮放百分比是125%,程式的整體外觀尺寸包括字體,圖片,按鈕都就會變大25%,圖片有些失真模糊!我主要想解決這個問題,不知道我表述清楚沒有!!
uj5u.com熱心網友回復:
你要把軟體在開發機器上的DPI,也就是Form的PixelsPerInch記下來,不一定是我寫的96,一般系統設定小字體是96DPI,大字體是120DPI,也可以自定義。ScaleBy(M, D);就是把組件大小縮放為M/D倍,假設你的設計時電腦設定是96DPI,軟體運行的電腦是120DPI,windows會自動把標準控制(也就是各種視窗),放大120/96=125%,然后你再ScaleBy(96, 120); 就縮小回設計時的狀態了。實測有效。
uj5u.com熱心網友回復:
前兩天也遇到過這個問題 換臺電腦編譯就不存在這個問題uj5u.com熱心網友回復:
你好大神,我用的delphi7,,按你說的方法試了,我是在虛擬機XP系統編譯的源程式,FORM的PixelsPerInch是96,我放到本機win10系統
里顯示解析度的縮放比例100%和125% FORM的PixelsPerInch屬性為什么都是是96,不知道為什么,125%時候運行程式還是被放大了,如果直接寫ScaleBy(96, 120)表單大小縮小了,里面的控制元件包括image imgbtn等卻沒有縮小,是版本問題,還是某些屬性我設定的不對,我網上搜了很多關于這方面的資料,都不行!
uj5u.com熱心網友回復:
某些組件沒有正確縮放可能是AutoSize之類的屬性造成的轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/15912.html
