希望达到这样的效果:
_______________
|  门牌号[1]  |
---------------
|  这里也可以|
|  改变颜色   |
---------------
主要分上下两个区域,两个区域都可以改变颜色,并且上面的区域需要显示门牌号;具体要求:
1、门牌号地方也可以改变颜色;
2、[1]地方也有小块区域可以改为另外颜色;
3、可以拖动;
希望大家帮忙,多谢。 

解决方案 »

  1.   

    说个思路:你可以这样,在Panel上放置Label或者不用,Panel有Caption这个属性,然后改变颜色的地方使用两个Tshape组件,使用消息编程实现拖动Panel组件即可拖动其上的其他组件。
      

  2.   

    多谢二位,
    rouqing 可以说的详细些吗?
      

  3.   

    运行期拖动控件http://topic.csdn.net/t/20020426/18/679515.html
    想看到直接结果,窗口放个Panel,Panel上放置Label和Shape,procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
        ReleaseCapture;
        panel1.Left:=x;
        panel1.Top:=y;
    end;不过效果不好,控件有点象飞,没有拖动的效果,点击Panel后,控件上的Label和Shape都移动了,呵呵。
      

  4.   

    用TstringGrid模拟, 把格子放大一些,有多少个房间就用多少个格子表示, 需要改变颜色的时候可以用canvas画
      

  5.   

    非常感谢larruping,
    其实,我就是想达到这样的效果,用什么工具不重要,您说用StringGrid来做,我很赞成,
    但是我想知道如何用Canvas画,我特想知道如何画,很惭愧,至今还不知道如何用Canvas画??!希望可以指教一二,多谢,
      

  6.   

    关于画stringGrid的
    http://topic.csdn.net/u/20070316/14/5af81e1b-fe3c-46b5-816e-31b41603134b.html
      

  7.   

    brightyang,
    谢谢提醒,我现在是征集思路,
    肯定要自己写的,关于这个问题,如果您有什么好的思路也请给一点,谢谢,
      

  8.   

    用TstringGrid模拟,   把格子放大一些,有多少个房间就用多少个格子表示,   需要改变颜色的时候可以用canvas画这个方法非常不错。
      

  9.   

    用TstringGrid模拟,   把格子放大一些,有多少个房间就用多少个格子表示,   需要改变颜色的时候可以用canvas画这个方法非常不错。
      

  10.   

    http://blog.csdn.net/oushengfen/archive/2007/10/29/1854874.aspx
      

  11.   

    楼主,你给我1000分,我给你写。
    其实很简单。
    用canvas自己画就行了。
      

  12.   

    flashtong,
    谢谢,我想自己写,谢谢您的好意,现在是这样的,
    可以加图片在StringGrid网格里,但是,不知道为什么,只要把鼠标移到上面,让它获得焦点,则图片就会消失,
      

  13.   

    还顶,还没有看明白吗?http://blog.csdn.net/oushengfen/archive/2007/10/29/1854874.aspx这里画的代码都有