怎样不用TSplitter控件实现TSplitter控件的功能

解决方案 »

  1.   

    干吗?
    PB中没有splitter控件
    所以只能建一个没有Caption的Label, 然后判断鼠标经过时变形状
    查看左键是否按下, 如果按下两边的其它控件Width改变
    多烦呢
      

  2.   

    这有什么烦的啊?不是很EZ吗?
    在onmousemove里判断位置啊,
    在交界处用xor画一条黑线,
    然后拖动的时候,在上一条黑线处
    再xor画条黑线,然后在新的位置xor一条黑线,
    mouseup的时候把最后一条黑线xor回去。
    这样不就OK了?
      

  3.   

    详细的可直接查看TSplitter的代码
      

  4.   

    使用一个panel可以吗?估计不好实现
      

  5.   

    用两个控件,Panel 或者是别的什么的,一个可见,颜色和窗体颜色一样,另一个不可见,颜色设置为其他色彩,应该是按钮的阴影色。设置可见的控件的光标形状为东西向或者是南北向的,在它的 MouseDown 时,将其不可见,在 MouseMove 时同时移动另外一个控件,在这个另外的控件的 onMouseUp 事件中,将自己不可见,将正常的控件可见。还要在 MouseDown 时做一个标记,标记用于判断另外一个控件的 MouseUp 事件。这个是 VB 6 中带的一个例子的做法。