全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1677
推到 Plurk!
推到 Facebook!

解析度改變後如何維持原來字型的大小?

答題得分者是:buliang
jck1
一般會員


發表:53
回覆:67
積分:24
註冊:2002-05-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-14 17:13:31 IP:211.22.xxx.xxx 未訂閱
若我把解析度改了 我可以用以下程式來維持原來form的大小
const
  ScreenWidth:LongInt=800;
  ScreenHeight:LongInt=600;
  Height:=longint(Height)*longint(Screen.Height)DIV ScreenHeight;
  Width:=longint(Width)*longint(Screen.Width)DIV ScreenWidth;
那麼font的size要如何維持呢? 謝謝!!
chiehmin
高階會員


發表:13
回覆:134
積分:134
註冊:2002-05-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-10-16 14:12:56 IP:61.221.xxx.xxx 未訂閱
Form裡的Scaled設為False應該就不會受解析度影響字型了..
jck1
一般會員


發表:53
回覆:67
積分:24
註冊:2002-05-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-10-29 11:23:32 IP:211.22.xxx.xxx 未訂閱
我找到了一篇相關的文章 在http://community.borland.com/article/0,1410,15944,00.html 覺得蠻有用的。    其中有一段是用來改變字的大小的
type
  TFooClass = class(TControl); { needed to get at protected }
                               { font property }     var
  i: integer;
begin
  for i := ControlCount - 1 downto 0 do
    TFooClass(Controls[i]).Font.Size := 
        (NewFormWidth div OldFormWidth) * 
        TFooClass(Controls[i]).Font.Size;
end;
請問這裡的NewFormWidth和OldFormWidth是指什麼呢?? 是指在還未Scaled之前的FormWith,和Scaled以後的FormWidth嗎? 如是這樣,我在設計時是用800*600 原form的width是768,後來調成1024*768後變成983 而上面的式子一算 (NewFormWidth div OldFormWidth) * TFooClass(Controls[i]).Font.Size; font.size 還是 乘於 1 (div是整數運算) 故font.size不會變 這樣會不會怪怪的, 我是想說font能不能也跟著form一樣也變大呢??
buliang
一般會員


發表:1
回覆:3
積分:5
註冊:2002-03-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-10-30 13:52:56 IP:218.165.xxx.xxx 未訂閱
有兩個函數可參考 預設解析度若為 800*600 1. Curform.ScaleBy(Screen.width,800); 2. ChangeScale(Screen.width,800); 楊文良
------
楊文良
系統時間:2024-04-27 22:24:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!