我想做一个跟VC++一样的用户界面,就是左边的工作区与编码区相关,当工作区移动时编码区也会响应的移动

解决方案 »

  1.   

    >>就是左边的工作区与编码区相关,当工作区移动时编码区也会响应的移动如果就这个功能,那好像和VC没什么关系
      

  2.   

    你在窗体上放一个panel1,然后设置属性如下:
    dockSite : true
    dragmode : dmautomatic
    dragkind : dkdock然后运行程序,你拖动panel1,看看是不是你要的效果
      

  3.   

    制作可随处拖放的工具栏,下面的例子,给你参考一下吧。
    在不同的情况下,可以把工具栏拖放到窗体的不同位置。
    例程说明如何制作可随处拖放的工具栏。
    1) 通过File | New Application创建一个新工程。
    2) 在窗体F o r m 1中添加一个To o l B a r组件,将D r a g M o d e属性设置为d m A u t o m a t i c,将
    A u t o S i z e设置为Tr u e。在To o l B a r 1上单击右键,使用菜单命令New Button为To o l B a r 1组件添加
    一些按钮。
    3) 在窗体F o r m 1中添加一个I m a g e L i s t 1组件,通过右键弹出的菜单命令ImageList Editor. . .对
    按钮图标进行编辑,并将To o l B a r 1组件的I m a g e属性设为I m a g e L i s t 1。
    4) 拖放工具栏的过程实际上是一个拖曳操作。当拖曳操作的源组件为To o l B a r 1且拖放结束时位置靠近窗体的边框,则令窗体接受拖曳操作,即设置窗体的A c c e p t属性为Tr u e,允许该组件放下。下面添加窗体F o r m 1的O n D r a g O v e r事件的处理过程如下:
    procedure TForm1.Form1DragOver(Sender, Source: TObject; X, Y: Integer;
    State: TDragState; var Accept: Boolean);
    b e g i n
    // 在一定条件下接受拖曳操作
    A c c e p t : = ( S o u r c e = To o l B a r 1 ) a n d ( ( x < 6 0 ) o r ( x > Wi d t h - 6 0 ) o r ( y < 6 0 ) o r ( y > H e i g h t - 6 0 ) ) ;
    e n d ;
    5) 当拖曳操作结束时,根据释放鼠标的位置确定工具栏停靠的位置。添加To o l B a r 1组件的
    O n E n d D r a g事件的处理过程如下:
    procedure TForm1.To o l B a r 1 E n d D r a g ( S e n d e r, Target: TObject; X, Y: Integer);
    b e g i n
    // 在To o l b a r 1拖放结束时,重新设置它的A l i g n属性
    if X<60 then
    下载
    ToolBar1.Align:=alLeft // 左
    else if X>Form1.Width-60 then
    ToolBar1.Align:=alRight // 右
    else if Y<60 then
    To o l B a r 1 . A l i g n : = a l Top // 上
    else if Y>Form1.Height-60 then
    ToolBar1.Align:=alBottom; // 下
    e n d ;
    e n d ;
      

  4.   

    当时我拖动panel1时主界面并没有发生相应的变化啊