TWideStrings有問題 |
尚未結案
|
melticemelt
一般會員 發表:22 回覆:29 積分:10 註冊:2002-10-01 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
|
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: TWideStrings應該是unicode版的TStringList TStringList->Insert(0,"");運作正常 但是TWideStrings->Insert(0,L"");只會把第一個元素給蓋掉 根本不會把元素向後推 只好自己一個一個往後搬 最後再Insertmelticemelt你好: 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了! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |