今天作了一个实例,有一断代码不理解,请大哥们明示,谢谢!
如上图:
窗体上放置了两个MEMO和一个PANEL组件,PANEL组件是为了实现窗体动态拖动代码如下:
procedure TForm1.Memo1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
accept:=false;
if source=panel1 then
begin
accept:=true;
memo1.Width:=X+(sender as tcontrol).Left;
end;
end;procedure TForm1.Memo2DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
accept:=false;
if source=panel1 then
begin
accept:=true;
memo1.Width:=X+(sender as tcontrol).Left;
end;
end;end.我想问一下
memo1.Width:=X+(sender as tcontrol).Left;
这句中的X是指谁的宽度?我这人太笨了,怎么也转不过来这个弯!
谢谢!!希望答详细点

解决方案 »

  1.   

    那个X就是这里的X:
    procedure TForm1.Memo1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    X,Y就是鼠标点击的位置
      

  2.   

    DragOver是鼠标触发的消息事件,X、Y是指鼠标的位置。
      

  3.   

    我看到你发得消息了。memo1.Width:=X+(sender as tcontrol).Left;Sender 是指Memo1
      

  4.   

    呵呵,Sender就是触发这个事件的Control
    建议楼主看看Sender,Parent,Owner的含义。