AnsiString 和 Label1->Caption 不同? |
尚未結案
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
|
lu
高階會員 發表:11 回覆:189 積分:195 註冊:2003-11-19 發送簡訊給我 |
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
引言: 試試看下面的程式碼吧不好意思 lu 大大,你誤會我的意思了,我只是想把: Label1->Caption = "Label1"; 改成 Label1->Caption = "Babel1"; 但我又不想用 Label1->Caption = "B"+Label1->Caption.SubString(2,Label1->Caption.Length()-1);如此大費周章. 因為我只要改一大長串字串裡的幾個字元而己,假如用指標(char *p)去指到Label1->Caption 的字串位置,我要改哪個字元,就方便多了,不必複製整個字串,只要考慮會不會超出範圍就好了.String ss = Lable1->Caption; ss[1] = 'B'; ShowMessage (ss); |
ubong
一般會員 發表:2 回覆:42 積分:23 註冊:2002-10-02 發送簡訊給我 |
|
liangnet
中階會員 發表:19 回覆:148 積分:83 註冊:2004-01-03 發送簡訊給我 |
你好!
請參考TLabel的Caption最原始的定義如下… 這一段是從TControl定義的 void __fastcall SetText(const AnsiString Value);
AnsiString __fastcall GetText(); _property AnsiString Caption = {read=GetText, write=SetText, stored=IsCaptionStored}; 因此Label1->Caption.c_str()所回傳的位址,並不是直接指Label的Caption.
|
GeorgeKu
中階會員 發表:1 回覆:120 積分:74 註冊:2004-10-13 發送簡訊給我 |
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
非常感謝各位大大的幫忙,問題己解決了.
Label1->Caption.c_str()所回傳的位址,的確不是直接指向Label的Caption,而是WindowText,但WindowText又不能直接用,只好再多設一個ATLabel,才可把WindowText的位置傳出來.
class ATLabel : public TLabel { public: __fastcall ATLabel(TComponent* Owner): TLabel(Owner){}; char *pChar() { return WindowText; } }; char *p = ((ATLabel*)Label1)->pChar(); p[0] = 'A'; Label1->Repaint(); |
ccobj
一般會員 發表:6 回覆:27 積分:21 註冊:2003-12-02 發送簡訊給我 |
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |