Q&A

  • [질문]TAdvStringGrid에서 Mouse 오른쪽 버튼 클릭시 현재 row값을 알 수 없나요?
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;

2  COMMENTS
  • Profile
    소울해커 2009.06.19 22:17
    procedure TIMRegist_F.gr5MouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
    var
    ACol, ARow: Integer;
    begin
    with gr5 do
    begin
    MouseToCell(X, Y, ACol, ARow);
    Row := ARow;
    end;
    end;
  • Profile
    신철우 2009.06.23 19:03
    엄청 감사합니다.