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

如何获得字体的长度与宽度?

缺席
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-06-26 12:05:44 IP:125.119.xxx.xxx 訂閱
请教各位大大:
为了让软体能在标准屏与宽屏间都能用,所以我想知道字体的长度与宽度,以便于转换,但是,如何才能得到字体的长度与宽度呢?



我现在用的是类似 label4.Font.Size:=trunc((sx*label4.Font.Size)/800); 但是感觉效果不是很理想,其中的sx指的是检测出来的screen.width,800指的是在标准屏设计时的screen.width
編輯記錄
luowy651 重新編輯於 2009-06-26 12:44:45, 註解 無‧
luowy651 重新編輯於 2009-06-26 12:46:12, 註解 無‧
max5020
資深會員


發表:30
回覆:277
積分:321
註冊:2003-06-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-06-26 13:38:45 IP:59.120.xxx.xxx 訂閱
參照使用 ScaleBy, Screen.Width, Screen,Height
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-06-26 15:07:23 IP:60.186.xxx.xxx 訂閱
感谢max5020大大的关注,小弟初学,能否说得再详细写?因为我是要在宽屏幕也能用


===================引 用 max5020 文 章===================
參照使用 ScaleBy, Screen.Width, Screen,Height
max5020
資深會員


發表:30
回覆:277
積分:321
註冊:2003-06-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-06-26 15:18:46 IP:59.120.xxx.xxx 訂閱
假設, 你的開發環境是 1024x768

在FORM.CREATE事件,
加入ScaleBy( TRUNC(768/Screen.Height*100), TRUNC(1024/Screen.Width)*100));
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-06-26 19:40:31 IP:219.82.xxx.xxx 訂閱
不知为何,试不出来
max5020大大在标准屏与宽屏幕之间试过吗?



===================引 用 max5020 文 章===================
假設, 你的開發環境是 1024x768

在FORM.CREATE事件,
加入ScaleBy( TRUNC(768/Screen.Height*100), TRUNC(1024/Screen.Width)*100));
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-06-27 08:57:07 IP:58.100.xxx.xxx 訂閱
举个例子,下面是我的code:

procedure TForm1.FormShow(Sender: TObject);
begin
speedbutton1.Font.Height:=11;
speedbutton1.Font.width:=22;
end;

为何每次运行都会出现 undeclared identfier:'width' 错误?

奇怪的是,只要把第二行speedbutton1.Font.width:=22;去掉,就可以通过了,但这样一来,不是就只有height没有width了吗?
編輯記錄
luowy651 重新編輯於 2009-06-27 08:58:32, 註解 無‧
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-06-27 11:48:55 IP:58.100.xxx.xxx 訂閱
似乎是字体都是正方形,所以宽和高是一样的,我现在用的方法如下(假设以前的环境是800*600):

speedbutton1.Font.Height:=trunc(screen.height*(speedbutton1.Font.height/600));
編輯記錄
luowy651 重新編輯於 2009-06-27 11:49:31, 註解 無‧
系統時間:2024-05-14 22:35:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!