Содержание материала

Code:

procedure TForm1.ListView1MouseDown(Sender: TObject;

Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

var

col: integer;

li: TListItem;

begin

li := TListViewX(ListView1).GetItemAtX(x, y, col);

if li <> nil then

   ShowMessage('Column #' + IntToStr(col));

end;

 

 

 

Code:

function acGetItemAt(lsv: TListView; X, Y: integer; var Col: integer): TListItem;

// Получение по координатам элемента, над которым пользователь щелкнул.

{  Пример использования:

procedure TForm1.ListView1MouseDown(Sender: TObject;

Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

var

col: Integer;

li: TListItem;

begin

li:= acGetItemAt(ListView1, x, y, col);

if li <> nil then ShowMessage('Column #' + IntToStr(col));

end;

}

var

i, RelativeX, ColStartX: Integer;

ListItem: TlistItem;

HTI: TLVHitTestInfo;

begin

Result:= lsv.GetItemAt(X, Y);

if Result <> nil then begin

   Col:= 0; // Первая колонка

end

else if (lsv.ViewStyle = vsReport) and (lsv.TopItem <> nil) then begin

   HTI.pt.x:= X;

   HTI.pt.y:= Y;

   lsv.Perform(LVM_SUBITEMHITTEST, 0, Integer(@HTI));

   Col:= HTI.iSubItem;

   Result:= lsv.Items[HTI.iItem];

end;

end;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить