AdvStringGrid인 gr5에 Mouse 오른쪽 버튼 클릭시 gr5.row가 이전행 값을 가지고 있어
현재 마우스가 있는 위치로 이동하고자 하는데 방법이 없나요?
우선 아래와 같이 onMouseDown 이벤트를 주었더니 수직스크롤이 되지 않은상태에서는 gr5.row를
계산할 수 있지만 수직스크롤 후에는 원하는 위치가 선택되지 않네요.
gr5.ScrollYPos 같은 수직스크롤 위치값을 구하는 함수가 있는지요?
구할 수 있다면 gr5.row := gr5.ScrollYPos + Y div gr5.DefaultRowHeight; 이렇게 하면
될 것 같은데. 조언 부탁드립니다.
아니면 스크롤바 클릭이벤트는 없는지요?
procedure TIMRegist_F.gr5MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if shift = [ssRight] then
begin
gr5.row := Y div gr5.DefaultRowHeight;
gr5Click(self);
end;
end;
Shift: TShiftState; X, Y: Integer);
var
ACol, ARow: Integer;
begin
with gr5 do
begin
MouseToCell(X, Y, ACol, ARow);
Row := ARow;
end;
end;