Как определить строку контроллера в положении мыши

#delphi #delphi-11-alexandria

#дельфи #дельфы-11-александрия

Вопрос:

Я хочу изменить подсказку контроллера, определяя, над какой строкой находится мышь, поэтому, например, подсказка может гласить «Строка 6».

Я знаю, что могу сделать это с помощью TStringList, как показано в следующем примере.

Пример списка строк:

 procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer); var  Col, Row: Integer; begin  StringGrid1.MouseToCell(X, Y, Col, Row);  StringGrid1.Hint := IntToStr(Col)   ' '   IntToStr(Row); end;   

Пример контроллинга:

 procedure TForm1.ControlList1MouseMove(Sender: TObject;  Shift: TShiftState; X, Y: Integer);  var  Row: Integer;  begin  ControlList1. lt;--------Looking for something like Mouse to Row  ControlList1.Hint := IntToStr(Row);  end;  

К вашему сведению, в списке контролеров перед отправкой доступен пункт AIndex. Было бы здорово получить AIndex или строку.

 ControlList1BeforeDrawItem(  AIndex: Integer; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState);  

Ответ №1:

TControlList предоставляет для этого свойство HotItemIndex.