Q&A

  • 트리뷰에서 팝업메뉴의 위치 조정....
procedure TForm1.TreeViewMouseDown(Sender: TObject;

Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

var

subNode : TTreeNode;

begin

if Button = mbRight

then

begin

if TreeView.Selected.Level = 0

then

begin

subNode := TreeView.GetNodeAt(X,Y);

PopupMenu1.Popup(X,Y);

end

else TreeView.Selected.Level = 1

then

begin

subNode := TreeView.GetNodeAt(X,Y);

PopupMenu2.Popup(X,Y);

end

;

end

;



이렇게 선택한 노드마다 팝업메뉴를 다르게 띄우는 건게, 이상하세 팝업메뉴의 위치가 윈도의 끝자락에서 뜨네염...



어떻게 해결을 해야 할까요....

2  COMMENTS
  • Profile
    홍성락 2001.09.07 04:13
    처버 ^^ wrote:

    > procedure TForm1.TreeViewMouseDown(Sender: TObject;

    > Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

    > var

    > subNode : TTreeNode;

    > begin

    > if Button = mbRight

    > then

    > begin

    > if TreeView.Selected.Level = 0

    > then

    > begin

    > subNode := TreeView.GetNodeAt(X,Y);

    > PopupMenu1.Popup(X,Y);

    > end

    > else TreeView.Selected.Level = 1

    > then

    > begin

    > subNode := TreeView.GetNodeAt(X,Y);

    > PopupMenu2.Popup(X,Y);

    > end

    > ;

    > end

    > ;

    >

    > 이렇게 선택한 노드마다 팝업메뉴를 다르게 띄우는 건게, 이상하세 팝업메뉴의 위치가 윈도의 끝자락에서 뜨네염...

    >

    > 어떻게 해결을 해야 할까요....

    ///////////////////////////////////////////////////////////

    팝업메뉴의 Popup는 모니터상 좌표이므로 여러방법이 있습니다.

    1.마우스현위치구해조정하기

    PopupMenu1.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y);

    2.TreeView속성의 팝업메뉴이용하기

    if TreeView.Selected.Level = 0 then begin

    TreeView.PopupMenu := PopupMenu1;

    end

    else if TreeView.Selected.Level = 1 then begin

    TreeView.PopupMenu := PopupMenu2;

    end

    else TreeView.PopupMenu := nil;

    3.부모 컨포넌트드
  • Profile
    처버 ^^ 2001.09.07 05:29
    홍성락 wrote:

    > 처버 ^^ wrote:

    > > procedure TForm1.TreeViewMouseDown(Sender: TObject;

    > > Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

    > > var

    > > subNode : TTreeNode;

    > > begin

    > > if Button = mbRight

    > > then

    > > begin

    > > if TreeView.Selected.Level = 0

    > > then

    > > begin

    > > subNode := TreeView.GetNodeAt(X,Y);

    > > PopupMenu1.Popup(X,Y);

    > > end

    > > else TreeView.Selected.Level = 1

    > > then

    > > begin

    > > subNode := TreeView.GetNodeAt(X,Y);

    > > PopupMenu2.Popup(X,Y);

    > > end

    > > ;

    > > end

    > > ;

    > >

    > > 이렇게 선택한 노드마다 팝업메뉴를 다르게 띄우는 건게, 이상하세 팝업메뉴의 위치가 윈도의 끝자락에서 뜨네염...

    > >

    > > 어떻게 해결을 해야 할까요....

    > ///////////////////////////////////////////////////////////

    > 팝업메뉴의 Popup는 모니터상 좌표이므로 여러방법이 있습니다.

    > 1.마우스현위치구해조정하기

    > PopupMenu1.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y);

    > 2.TreeView속성의 팝업메뉴이용하기

    > if TreeView.Selected.Level = 0 then begin

    > TreeView.PopupMenu := PopupMenu1;

    > end

    > else if TreeView.Selected.Level = 1 then begin

    > TreeView.PopupMenu := PopupMenu2;

    > end

    > else TreeView.PopupMenu := nil;

    > 3.부모 컨포넌트드