var Item_x : integer; Item_y : integer; procedure TFrmVideo.LView_SearchRltMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i: Integer; begin if self.LView_SearchRlt.GetItemAt(x,y) <> nil then begin if not LView_SearchRlt.Checkboxes then LView_SearchRlt.Checkboxes := True;
Item_x := x; Item_y := y; //以往记录 for i := 0 to self.LView_SearchRlt.items.Count-1 do begin if self.LView_SearchRlt.Items[i].Checked then self.LView_SearchRlt.Items[i].Checked := False; end; //当前记录 if not LView_SearchRlt.GetItemAt(Item_x,Item_y).Checked then LView_SearchRlt.GetItemAt(Item_x,Item_y).Checked := True; LView_SearchRlt.GetItemAt(Item_x,Item_y).Selected := True; end;end;
Change: TItemChange);
begin listview1.Selected:=item;
end;
您有解决方法吗?
procedure TForm1.Button1Click(Sender: TObject);
var
ListItem: TListItem;
begin
ListItem := ListView1.Items.Add;
ListItem.Caption := '1';
ListItem.SubItems.Add('2');
end;procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
beginlistview1.Selected:=item;end;
item1:TListItem;procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
begin
item1:=item;
end;procedure TForm1.ListView1Click(Sender: TObject);
begin
listview1.Selected:=item1;
end;
Item_x : integer;
Item_y : integer; procedure TFrmVideo.LView_SearchRltMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
i: Integer;
begin if self.LView_SearchRlt.GetItemAt(x,y) <> nil then
begin
if not LView_SearchRlt.Checkboxes then
LView_SearchRlt.Checkboxes := True;
Item_x := x;
Item_y := y; //以往记录
for i := 0 to self.LView_SearchRlt.items.Count-1 do
begin
if self.LView_SearchRlt.Items[i].Checked then
self.LView_SearchRlt.Items[i].Checked := False;
end; //当前记录
if not LView_SearchRlt.GetItemAt(Item_x,Item_y).Checked then
LView_SearchRlt.GetItemAt(Item_x,Item_y).Checked := True;
LView_SearchRlt.GetItemAt(Item_x,Item_y).Selected := True; end;end;
或者在单击时记录下它在整体记录的位置也行吧
你看看