各位有用过SPY的兄弟,当你们用搜索窗体的时候,只要把那个准星拉到相对应该的窗体上(包括控件),它就会显示这个相对应窗体的HANDLE,
问题如下:
   怎么样判断当前点是不是在一个窗体或控件上..比如我是一个BUTTON..
   当按钮移动的时候怎么样,让两个按钮之间的联线(是TSHAPE类型)跟着移动.(这个是的主要问题是:当我用,ReleaseCapture;Button.Perform(WM_SYSCOMMAND,$F011,0);这两个来移动一个控件时,联线会变掉...)
procedure TForm1.Button2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  Button2.Perform(WM_SYSCOMMAND,$F011,0);
end;
procedure TForm1.Button1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  Button1.Caption:=TButton(Source).Caption;
  Form1.Canvas.MoveTo(TButton(Source).Left,TButton(Source).Top);
  Form1.Canvas.LineTo(TButton(Sender).BoundsRect.Bottom,TButton(Sender).BoundsRect.Right);
end;

解决方案 »

  1.   

    放个Email 看看是不是你想要的
      

  2.   

    [email protected]
    谢谢老兄弟..
      

  3.   

    老兄弟?? hehe^^给你发了,你先收收看一个是程序一个是我写的一个控件可能有一部分参考价值
      

  4.   

    你说的这不是一个比较标准的树型结构吗?? hehe^^一个节点可以有子节点,子节点还有子节点....
      

  5.   

    不用..我只要单向的就可以了..
    A->B->C->D..
    A,B,C,D都是指一个按钮..
    我怎么根据联线来记录下这些按钮的联线顺序?
      

  6.   

    你可以向我一样把 TButton 类扩展一个属性你参考我发给你的 TShapeEx 控件
      

  7.   

    扩展属性后,在鼠标的操作中 记录 A/B/C 等等的关系放入新属性中,当然你也可以用Button的Tag来记录下一个的“ID” hehe^^
      

  8.   

    我看了你的代码了..但是不太懂为什么有这些东西..
    老大你能不能把代码解释一下..然后E一个给我..
    我实现的功能 就跟你发给我的EMAIL的一样..呵呵..谢谢你了老大..
      

  9.   

    明天到公司发给你,连线的那段代码 hehe^^把我邮箱都撑暴了 ^^!
      

  10.   

    http://expert.csdn.net/Expert/topic/2497/2497161.xml?temp=.5688898
      

  11.   

    我的那个不记完整的队列,一个模块只记与它有关系的模块hehe^^然后可以遍历
      

  12.   

    http://hanyi.codelphi.com/dmt.html中的CADSys
      

  13.   

    你好好看看其中关于TLine的实现 ^^
      

  14.   

    我那个是用的DxFlowChart因为我做的那个控件太简单,一开始能符合需求,但后来不行了,所以我就用了第三方的东东