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

TWideStrings有問題

尚未結案
melticemelt
一般會員


發表:22
回覆:29
積分:10
註冊:2002-10-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-10 08:37:17 IP:203.69.xxx.xxx 未訂閱
TWideStrings應該是unicode版的TStringList TStringList->Insert(0,"");運作正常 但是TWideStrings->Insert(0,L"");只會把第一個元素給蓋掉 根本不會把元素向後推 只好自己一個一個往後搬 最後再Insert
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-10 13:12:19 IP:211.76.xxx.xxx 未訂閱
TStrings好像都會這樣(尤其在處理空字串的加入時),我用TStringList時也遇到過類似的問題。不知道有沒有大大提供比較好的解法?
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-11 00:03:09 IP:211.74.xxx.xxx 未訂閱
引言: TWideStrings應該是unicode版的TStringList TStringList->Insert(0,"");運作正常 但是TWideStrings->Insert(0,L"");只會把第一個元素給蓋掉 根本不會把元素向後推 只好自己一個一個往後搬 最後再Insert
melticemelt你好: class="code"> procedure TWideStrings.Insert(Index: Integer; const S: WideString); var PWStr: ^TWString; { if((Index < 0) or (Index > FWideStringList.Count)) raise Exception.Create(SWideStringOutofBounds); if (Index < FWideStringList.Count) { PWStr := FWideStringList.Items[Index]; if (PWStr<>nil) PWStr.WString := S; <---明顯的只有取代的動作 } else Add(S); } 明顯的並沒有往推的動作,另外TStringList是有的,TStringList在insert等method被呼叫時,最後會有一個叫Changed的function,作整理的動作,所以所有的item會往後搬! TStringList的source就請自查了! 所以結論應該只有自已重寫override那個insert method了!
系統時間:2024-04-28 11:41:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!