팝업메뉴를 자동으로 띄우시지 마시고 팝업메뉴(TPopupMenu)의 AutoPopup속성을 False로 해서 메뉴얼로 띄우세요.
그리고 스트링그리드의 OnMouseDown이벤트에서 팝업메뉴를 띄우세요...
스트링그리드의 MouseToCell메소드를 이용하시면 마우스좌표로 클릭한 셀의 Row와 Column을 알 수 있습니다. 이걸 이용해서 특정 컬럼이면 안띄우시면 됩니다.
<!--CodeS-->
procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
P: TPoint;
begin
P := TStringGrid(Sender).ClientToScreen(Point(X, Y));
PopupMenu1.Popup(P.X, P.Y);
end;
<!--CodeE-->
그리고 스트링그리드의 OnMouseDown이벤트에서 팝업메뉴를 띄우세요...
스트링그리드의 MouseToCell메소드를 이용하시면 마우스좌표로 클릭한 셀의 Row와 Column을 알 수 있습니다. 이걸 이용해서 특정 컬럼이면 안띄우시면 됩니다.
<!--CodeS-->
procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
P: TPoint;
begin
P := TStringGrid(Sender).ClientToScreen(Point(X, Y));
PopupMenu1.Popup(P.X, P.Y);
end;
<!--CodeE-->