Myślę, że to Ci może pomóc ;)
procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
liTemp: TListItem;
sSub: string;
begin
liTemp := ListView1.GetItemAt(X,Y);
if liTemp <> nil then
xPos := x;
end;
procedure TForm1.ListView1DblClick(Sender: TObject);
var
i,xs, xe, iCol: Integer;
bFound: Boolean;
ADefault: string;
begin
if ListView1.Selected = nil then Exit;
// default
xs := 0;
xe := 0;
iCol := 0;
bFound := False;
for i := 0 to Pred(ListView1.Columns.Count) do
begin
xe := xs + ListView1.Columns[i].Width;
if (xe > xPos) and (xs < xPos) then
begin
bFound := True;
break
end
else
Inc(iCol);
xs := xe;
end;
if bFound then
begin
if iCol = 0 then
ListView1.Selected.Caption :=
InputBox('Change Value',
'Enter new value',
Trim(ListView1.Selected.Caption))
else
ListView1.Selected.SubItems[iCol-1] :=
InputBox('Change Value',
'Enter new value',
Trim(ListView1.Selected.SubItems[iCol-1]));
end;
end;
end.