線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:844
推到 Plurk!
推到 Facebook!

請問如何assign一個 TLabel元件給另一個Tlabel元件呢

尚未結案
tommylee926
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-08 00:25:46 IP:211.76.xxx.xxx 未訂閱
小第現在有二個 Tlabel元件,分別為Label1 Label2 而Label2是 動態 產生地,當我設定Label1->Caption = "abcd EFGHIJKL mno"; 若我想把文字裡面的 "EFGHIJKL" 的 ”位址" assign給Label2也就是 =========================================== Label1->Caption = "abc Label2 mno"; | | | | (EFGHIJKL) =========================================== 請問要如何作到呢?
tommylee926
一般會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-08 00:28:20 IP:211.76.xxx.xxx 未訂閱
各位大大,之前的 '|'與(EFGHIJKL) 是放在Label1->Caption = "abc Label2 mno";中Label2的下面
furbylin
一般會員


發表:6
回覆:29
積分:12
註冊:2003-08-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-09 13:37:13 IP:61.221.xxx.xxx 未訂閱
不太懂耶! 請問是這樣嗎? Label1->Caption = "abc EFGHIJKL mno"; AnsiString tmp = Label1->Caption.SubString(5,8); Label2->Caption = tmp;
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-09 14:51:01 IP:210.66.xxx.xxx 未訂閱
其實有一個重點, 就是font的選擇, 如果要做此處理,我是強烈建議用BCB editor的字型,就是Courier New, 因為它每個字的大小都很固定,不會因為M和I或大小寫的size不同。 再利用一些計算,就可以算出放置的位置 參考以下程式碼:  
     __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
     Label1->Font->Name="Courier New";
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button1Click(TObject *Sender)
{
     int Len = Label1->Caption.Length();       //計算Label1有多長
     int WordLocal = Label1->Width / Len;      //計算一個字有多寬
     int Replace_Local = Label1->Caption.Pos("b");  //抓要取代字的位置         TLabel *Label2 = new TLabel(this);
     Label2->Parent = this;
     Label2->Font->Name="Courier New";
     Label2->Caption = "Label2";         Label2->Font = Label1->Font;              //把Label2的font設成和Label1一樣
     Label2->Font->Color = clRed;              //顏色設成red
     Label2->AutoSize = true;
     Label2->Top = Label1->Top;
     Label2->Left = Label1->Left   WordLocal * (Replace_Local-1); //計算位置    }    
對了,那個b是我在測試用的,請自行改成EFGHIJKL 國泰平安 發表人 -
tommylee926
一般會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-09 18:21:58 IP:211.76.xxx.xxx 未訂閱
謝謝gemi0305大大,對了在請問一下,您的程式碼中有一個是計算 "計算一個字有多寬" ,它的單位是pixel嗎?
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-09-09 18:41:27 IP:210.66.xxx.xxx 未訂閱
對,單位是pixels~    其實主要是因為Courier New的每個字大小都很固定, 來除的時候,照理說就能整除(總長度 / 字數 = 字寬) 而我那個變數名字取的不好,因該叫WordWidth,不是叫WordLocal~別見怪 國泰平安
tommylee926
一般會員


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

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