呼叫InputBox之執行程式執行時提示字串忽長忽短 why ? |
答題得分者是:Clarinet
|
ry_lee
高階會員 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
|
Clarinet
高階會員 發表:9 回覆:97 積分:126 註冊:2002-05-08 發送簡訊給我 |
引言: 請教大家: 為何呼叫InputBox之執行程式執行時提示字串忽長忽短,比如我的例子是InputBox('InputBox','輸入一註冊碼','ttyy11dd'),但程式執行時提示字串有時是"輸入",有時是"輸",有時是"輸入一",請教大家為什麼會這樣,要怎麼解決(解決方法不包括自建輸入表格)?那個好像是TLabel的問題!因為有時用TLabel時也會!至於什麼原因我也不知!懶得去想! 所以在輸入中文的時候就在最後多空幾個空白來解決這種問題! 因此,
------
GPS(全球衛星定位系統) http://www.allgps.com |
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
那是因為 InputBox 實際上是DELPHI 自己產生一個 FORM 及 TLABEL, TEDIT 在上頭. TLABEL 的 AutoSize 在大字型模式下會計算錯誤, 所以才會造成字被截掉的問題. 最根本的解決方式就是重新修改 Dialogs.pas, 把 Label 設為和 Dialog 一樣寛, AutoSize 設為 False, 這樣就不會再發生同樣的問題了!!
with Prompt do begin Parent := Form; AutoSize := false; Left := MulDiv(8, DialogUnits.X, 4); Top := MulDiv(8, DialogUnits.Y, 8); width:=canvas.TextWidth(APrompt) 10 ; height:=(-font.height) 10 ; Caption := APrompt; end;修改後別忘了將重編出來的 Dialogs.DCU 放到 LIB 目錄下, 這樣以後才都會有作用. ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |