我想更改 ControlList 的提示,检测鼠标在哪一行,例如提示可以说“第 6 行”
我知道我可以使用 TStringList 执行此操作,如下例所示。
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. <--------Looking for something like Mouse to Row
ControlList1.Hint := IntToStr(Row);
end;
仅供参考,在 ControlList BeforeDraw Item AIndex 中可用。获得 AIndex 或 Row 会很棒。
ControlList1BeforeDrawItem(
AIndex: Integer; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState);