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

請問如何得知T label 裡的每個文字的座標呢?

尚未結案
tommylee926
一般會員


發表:24
回覆:25
積分:9
註冊:2003-08-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-04 22:33:16 IP:211.76.xxx.xxx 未訂閱
若想知道 label 裡的每個文字的座標,要怎麼得知呢?
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-21 11:34:15 IP:203.204.xxx.xxx 未訂閱
可以利用 Canvas->TextWidth() 來取得字的寬,如下的範例:
//----------------------------------------------------------------------------//
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Label1->Caption="0123456789abcABCWIMwim";
  AnsiString as;
  for(int i=0;iCaption.Length();i  )
  {
    as.printf("char[%d] StartXPos=%d\n",i,
       Label1->Canvas->TextWidth(Label1->Caption.SubString(1,i)));
    ListBox1->Items->Add(as);
  }
}
//----------------------------------------------------------------------------//
void __fastcall TForm1::Label1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
  for(int i=0;iCaption.Length();i  )
  {
    if(X>=Label1->Canvas->TextWidth(Label1->Caption.SubString(1,i))
    && X<=Label1->Canvas->TextWidth(Label1->Caption.SubString(1,i 1)))
    {
      Label2->Caption="第" IntToStr(i) "個字";
      return;
    }
  }
  Label2->Caption="不知道是第幾個字";
}
//----------------------------------------------------------------------------//
同理,可以利用 Canvas->TextHeight() 來取得字的高喔。 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
tommylee926
一般會員


發表:24
回覆:25
積分:9
註冊:2003-08-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-21 18:00:21 IP:211.76.xxx.xxx 未訂閱
謝謝dllee大大,我知道要怎麼作了,謝謝您
系統時間:2024-05-10 14:50:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!