#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.