日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

不同DPI下窗体的自适应的有关注意点(转)

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 不同DPI下窗体的自适应的有关注意点(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不同DPI下窗體的自適應的有關注意點(轉自:http://hi.baidu.com/superkinger/blog/item/79e047ec6c80563526979197.html)

1.??????? 在設計窗體的時候需要考慮是否允許程序在不同DPI自適應窗體,不自適應的優點是在不同的DPI下看到的結果基本是一樣的,缺點是可能在不同的DPI下看起來太小或者太大。

2.??????? 如果不想自適應窗體,則設置窗體的Scaled為False

3.??????? 如果需要自適應窗體,則設置窗體的Scaled為True(Delphi的窗體默認是允許Scaled的)

4.??????? 將AutoScroll屬性設置為False并保存窗體,AutoScroll為True表示不在運行期改變窗體的大小,這樣當窗體的字體和組件進行縮放時看起來就會很糟糕。(在Delphi 7下,如果窗體可以調整大小,則AutoScroll會自動設定為True,而我們大部分的程序都是可以改變窗體大小的,Delphi默認的窗體也是可以改變窗體大小的,所以很多時候窗體就被不小心設置為Scaled和AutoScroll都是True了)

5.??????? 將窗體的自己設置為可以自適應的TrueType字體,如Arial,Tahoma等;MS San Serif不是TrueType的,雖然大部分情況下看起來還行。(Delphi 2006調整了窗體的默認字體為Tahoma,可是之前版本的Delphi的窗體的默認字體都是MS San Serif,這個字體也是在Windows 2000等系統下看起來正常的中文字體到了Win98下卻很小很丑的元兇)

6.??????? 如果使用的字體在運行的操作系統中沒有,則Windows會自動在缺失字體的同一體系中選擇一種替換字體,不過替換字體的大小與原來設定的字體很可能不同,這樣也可能會導致問題。(可以通過向%WinDir%\Fonts添加字體,也可以通過系統消息向系統注冊字體)

7.??????? 將窗體的Position屬性設置為除poDesigned之外的值(Delphi 2006中的poDefaultPosOnly也不可以),因為如果設計的時候窗體被拉到Left為650的地方,那么窗體在640*480的分辨率下就會看不到了。

8.??????? 不要將窗體上的各個控件擠在一起,起碼要給各個控件之間留4個像素的位置,這樣當Border屬性等導致控件變化的時候不會導致控件重疊在一起。

9.??????? 給單行的Align屬性不是alCenter的Label設置AutoSize為True。(多行的Label不要設置AutoSize為True)

10.???? 給Label/CheckBox等等控件足夠的空白范圍以便當字體寬度變化時變化。預留當前長度的25%是比較好的(如果要進行多語翻譯則需要更多留白,至少30%)。如果Label的AutoSize為False,則要Label的Width就要足夠大。對于多行的Label,在Label的底部起碼多留一行的空間。

11.???? 不要在不同的DPI下在IDE中打開并保存窗體(和包含窗體的代碼文件)。(對于SCM,推薦使用小字體-96DPI,Windows經典主題)

12.???? 無論是在運行期還是在設計期都不要多次ReScale窗體,因為每次Scale都會帶來浮點精度的舍去;也不要修改一個窗體的PixelsPerInch屬性(IDE會阻止該屬性的修改,但是卻不能阻止手工修改),此外也不要直接修改dfm中的窗體大小等等信息,TextHeight屬性也不能修改。

13.???? 設計窗體的時候要考慮窗體的大小不要超過程序能運行的最小分辨率。

14.???? 設計窗體時,要合理設置控件的Anchors/Align等屬性。

15.???? 此外如TComboBox/TDBLookupCombo等等組件也需要盡量給足寬度,否則可能會看不到完整的信息。

16.???? 在程序中不要使用固定的控件位置和大小,因為這些都可能在運行時變化。(如Button.Top := 50等)

17.???? 設置了AutoResize的TImage的圖片不會自動放大或縮小,所以不可以采用利用設計期的圖片的大小來只顯示部分圖像的方法。

18.???? 如果窗體可以記憶上一次運行的大小、位置、WindowsState等,在Load的時候需要注意要確保窗體在屏幕上可見,以及不要調整不能調整大小的窗體的大小。

19.???? TFrame是為了在設計期復用窗體而引入的,如果要將運行期的窗體嵌入到別的窗體,則需要使用TForm。(DBStudio就不恰當的使用了TFrame)

20.???? 在多語程序中可能會涉及到字體的修改,這時也應該考慮多DPI設定的情況。

21.???? 如果一個電腦在多DPI間切換,則注冊表保存的窗體大小和位置等信息也需要被小心處理

轉載于:https://www.cnblogs.com/mumble/archive/2010/05/11/1732935.html

總結

以上是生活随笔為你收集整理的不同DPI下窗体的自适应的有关注意点(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。