兩個listview間的資料傳遞問題 |
答題得分者是:pgdennis
|
challenge
一般會員 發表:14 回覆:41 積分:11 註冊:2002-10-08 發送簡訊給我 |
請問各位前輩…
目前我使用到兩到元件…Listview1及Listveiw2
Listview1的資料會從檔案讀進來
而Listview2只需要Listview1的一些資料
並將Listview1重覆的資料捨去再顯示到Listveiw2
可是執行之後…重覆的資料並不會捨去…不知問題何在?
以下是我的程式,謝謝! procedure TForm1.BitBtn1Click(Sender: TObject);
var a: TListItem;
i,j: integer;
begin
a := listview1.Items.Add();
try
for i := 0 to ListView1.items.Count - 2 do
begin
a.Caption := ListView1.Items.Item[i].Caption; for j := 0 to 48 do
a.SUBITEMS.ADD( ListView1.Items.Item[i].SUBITEMS.STRINGs[j]);
//判斷是否有資料存在
if ListView2.Items.IndexOf(a) = -1 then begin
ListView2.Items.Insert(ListView2.Items.Count);
ListView2.Items.Item[ListView2.Items.Count-1] := a;
end;
a.SubItems.Clear;
end;//for
finally
a.Free;
end;
end;
|
pgdennis
資深會員 發表:41 回覆:526 積分:443 註冊:2002-05-23 發送簡訊給我 |
我寫了一段code..不知有沒有誤會你的意思,我的做法是先把資料讀到listview2中,再判斷是否存在於listview1中,沒有則加入,並從listview2中移除,我只有比較caption而已...另外下面的code是假設你一筆一筆讀入資料時處理的過程
procedure TForm1.BitBtn1Click(Sender: TObject); var i:integer; temp_item,temp_item2:TListitem; Found:boolean; begin temp_item:=listview2.Items.Add; temp_item.Caption:='test'; Found:=false; for i:=0 to listview1.Items.Count-1 do if listview1.Items.Item[i].Caption = temp_item.Caption then begin Found:=true; break; end; if Found=false then begin temp_item2:=listview1.Items.Add; temp_item2.Caption:= temp_item.Caption; listview2.Items.Delete(temp_item.Index); end end;永遠追不上技術更新的速度
------
星期一,二...無窮迴圈@@ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |