我想在子窗口中某一控件的单机事件中显示一个PANEL,PANEL的top和left在当前鼠标的位置,可是,当子窗口的大小位置发生变化时,显示的PANEL的位置偏移的很厉害,请问该如何解决?
谢谢!

解决方案 »

  1.   

    在窗体中放上一个button 名位btn1
    多放几个 panel groupbox 之类的 在onclik事件中看看下面效果 可以实现定位到当前控件(0,0)位置然后在加上你自己的控件的Left,Top就行了
    var
        i:Integer;
        iTop:Integer;
        iLeft:Integer;
        MyCtrl:TControl;
    begin
        iLeft := 0;
        iTop:=0;
        Caption := IntToStr(Mouse.CursorPos.X)+','+IntToStr(Mouse.CursorPos.Y);
        MyCtrl := (Sender as TControl);    while MyCtrl.HasParent do
        begin
            iLeft := iLeft + MyCtrl.Left;
            iTop := iTop + MyCtrl.Top;
            MyCtrl := MyCtrl.Parent;
        end;
        btn1.Left := iLeft;
        btn1.Top := iTop;
    end;