InputBox「提示訊息」字體顯示只出現三個? |
尚未結案
|
moons512
一般會員 發表:6 回覆:3 積分:1 註冊:2004-07-30 發送簡訊給我 |
|
ENIX007
高階會員 發表:28 回覆:274 積分:185 註冊:2003-11-27 發送簡訊給我 |
moons512您好
先聲明,小弟沒使用過InputBox...
只是這種情形和TLabel元件的情況很像...小弟推測它也是使用TLabel元件...
您可以試試看,放一個TLabel元件在Form上,AutoSize屬性設為true,
Caption輸入中文字,顯示出來也是這個樣子...
應該是這個元件在算這類WideChar的顯示長度上有問題...
如果輸入的是英文字母或數字,就不會有問題...
TLabel元件只要將AutoSize設為false就能解決,不過InputBox是內建的元件...
最好是不要修改它...
如果一定要用到InputBox提供的功能...自己做一個Form就可以了... 以上建議請參考
程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~
------
程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~ |
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
moons512: 參考對岸 http://www.ccrun.com/doc/go.asp?id=598 C Builder 研究 將[BCB]\Source\vcl\dialogs.pas拷貝到你的執行目錄下 開啟你的執行目錄下dialogs.pas 找到function InputQuery裡的 Prompt := TLabel.Create(Form);下面加一行 Prompt.Parent := Form; Project->加入dialogs.pas Project->Options->Packages->取消Build with runtime Packages 執行OK! 如按文章所言你還可以作更多事 請參考!Andy Chang
------
Andy Chang |
moons512
一般會員 發表:6 回覆:3 積分:1 註冊:2004-07-30 發送簡訊給我 |
|
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
先要把檔案dialogs.pas copy回你BCB檔案下 按我說明重新更正 開啟你的執行目錄下dialogs.pas 找到function InputQuery裡的 with Prompt do begin Parent := Form; Left := MulDiv(8, DialogUnits.X, 4); Top := MulDiv(8, DialogUnits.Y, 8); // 下面加入 Width := 160; 是在project-> add to project加入嗎? 是,只要你的這隻同目錄下的dialogs.pas 加入你的project即可 我在未COPY回得情況下,小小RUN了一下,打五個字,出現四個了~~= = 請問正常嗎? 當然不正常!Andy Chang
------
Andy Chang |
moons512
一般會員 發表:6 回覆:3 積分:1 註冊:2004-07-30 發送簡訊給我 |
我按照大大新的方式做了,最後也把.pas放回vcl下。
重新執行了一次~
發現可怕的事情= =
我的程式碼如下:
double pay,yr_rate,yr,sn;
pay = StrToFloat(InputBox("本金","請輸入本金 :",""));
yr_rate = StrToFloat(InputBox("年利率","請輸入年利率 %:",""));
yr = StrToFloat(InputBox("年數","請輸入幾年後 :","")); 我run了好幾次,pay那行就只出現:請輸入本
而yr_rate,yr後面的「請輸入年利率」「...幾年後」都可以完整顯示出來~~
那呀按ㄟ?@@
|
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
對不起可能我說的不清楚
原Vcl\Source\dialogs.pas 不要動,也不要改
將dialogs.pas copy回你BCB專案檔案下
開啟你的BCB專案目錄下dialogs.pas
找到function InputQuery裡的
with Prompt do
begin
Parent := Form;
Left := MulDiv(8, DialogUnits.X, 4);
Top := MulDiv(8, DialogUnits.Y, 8);
// 下面加入
Width := 160;
只要你的這隻同目錄下的dialogs.pas 加入你的project即可
記著你的專案檔案只要
project-> add BCB專案目錄下dialogs.pas
程式裡不要Include dialogs.pas
我執行的結果
請參考 Andy Chang
------
Andy Chang |
bugmans
高階會員 發表:95 回覆:322 積分:188 註冊:2003-04-12 發送簡訊給我 |
這個問題我也曾經回答過http://www.vbguide.com.tw/vbqa/vb.old/read.asp?id=30406
hook方法的參考資料http://www.enzinger.net/InpBoxEx.txt
SetTimer方法的參考資料http://www.freevbcode.com/ShowCode.asp?ID=1214&NoBox=True
基本上都是用到WinAPI,很容易就可以看懂的,如果要BCB或Delphi的範例就要上google找看看了
|
chtai
高階會員 發表:68 回覆:238 積分:116 註冊:2004-05-21 發送簡訊給我 |
引言: 對不起可能我說的不清楚 原Vcl\Source\dialogs.pas 不要動,也不要改 將dialogs.pas copy回你BCB專案檔案下 開啟你的BCB專案目錄下dialogs.pas 記著你的專案檔案只要 project-> add BCB專案目錄下dialogs.pas 程式裡不要Include dialogs.pas 我執行的結果請問一下,為什麼我直接修改 Vcl\Source\dialogs.pas 會無效呢? -- http://www.csie.nctu.edu.tw/~chtai/software.php 好用免費軟體的收集網頁,歡迎大家跟我分享或一同推廣免費軟體。 若您覺得這網頁不錯,也歡迎您將它傳出去 :)
------
My Web: http://nelson.csie.us My Blog: http://blog.nelson.csie.us |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |