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

TLabel 如何可以實現char wrap?

尚未結案
SuperLowB
初階會員


發表:96
回覆:77
積分:34
註冊:2003-06-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-24 12:44:52 IP:203.198.xxx.xxx 未訂閱
TLabel 可以wordwrap,但怎樣可以char wrap呢?
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-24 14:48:32 IP:61.71.xxx.xxx 未訂閱
引言: TLabel 可以wordwrap,但怎樣可以char wrap呢?
不知道你的char是何值, 不過一般我都不用wordwrap, 而是直接指定 label1.caption:='....' chr(13) '...'
SuperLowB
初階會員


發表:96
回覆:77
積分:34
註冊:2003-06-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-25 10:57:59 IP:203.198.xxx.xxx 未訂閱
但我想它自動charwrap,不是手動
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-25 12:49:56 IP:61.222.xxx.xxx 未訂閱
事實上在寫入Caption時,做一些判斷就可以了。 請將 AutoSize := false;WordWrap := False; 並拉大Label範圍為顯示範圍。    
procedure TForm1.Button1Click(Sender: TObject);
var
  I,CharW,TextW :Integer;
  WStr,DStr : WideString;
begin
  DStr := '';
  WStr := '有Delphi K.TOP 查資料真方便!';
  With Label1 do
  begin
    Canvas.Font := Font;
    TextW := 0;        if Canvas.TextWidth(WStr)>Width then
    begin
      { 文字長度不夠顯示處理 }
      For I:=1 to Length(WStr) do
      begin
        CharW := Canvas.TextWidth(WStr[I]);
        Inc(TextW,CharW);
        if TextW>Width then
        begin
          DStr  := DStr   WStr[I]   #13;
          TextW := 0;
        end else DStr := DStr   WStr[I];
      end;
    end;
    Caption := DStr;
  end;
end;
若文字有超過,帶表示你沒選擇正確的字型。 例如 中文字卻選擇英文字型。 參考 ~~~~~~~~~~~ 難得聰明,常常糊塗。 ~~~~~~~~~~~ 發表人 - wameng 於 2005/05/25 12:55:25
系統時間:2024-05-17 11:41:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!