做一个可是化的控件,比如说一个图形控件,要求他能够处理像onclick,onMouseUP等事件,能更改控件的颜色啊,能在控件上写文本说明等。
像做这样的空间一般的思路怎么样,能给个例子吗?

解决方案 »

  1.   

    都提供CANVAS 给你进行绘制外观,以及鼠标事件支持。下面是一个框架
    TYourClass=TCustomControl//有HANDLE,可以响应WM_KILLFOCUS,WM_SETFOCUS消息
    TYourClass=TGraphicControl//无HANDLE,不可以响应WM_KILLFOCUS,WM_SETFOCUS消息
      protected
        procedure Paint; override;//都响应WM——PAINT消息绘制和刷新自己;
      published
         //都已经具有下面这两个属性。你只需公布他们就可以了。
       property Color;
       property Caption;
       property OnClick;
       property OnMouseDown;
       property OnMouseMove;
           //////////////////这写都是已经具有的方法。公布就可;
    procedure TYourClass.Paint;
    begin
      with Canvas do
      begin
        Brush.color:=Color;
        FillRect(ClientRect);//用Color属性值填充整个区域;
        TextOut(0,0,Caption);//画出Caption属性值;
      end;
    end;
    //你自己找一个有代码的 BUTTON 等东西来看看就全明白了
      

  2.   

    TBitmap 类 具有 保存功能。可以到流,也可以到文件;
    SaveToFile;
    SaveToStream();
    LoadFromFile();
    LoadFromStream();
    也可以是 剪贴板
    如果你想保存成JPEG。JPEG单元封装了全部的操作。作个转换。