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
;
이렇게 선택한 노드마다 팝업메뉴를 다르게 띄우는 건게, 이상하세 팝업메뉴의 위치가 윈도의 끝자락에서 뜨네염...
어떻게 해결을 해야 할까요....
> 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.부모 컨포넌트드