准备做个这种功能:
在ScrollBox放有一些控件(自己写的控件,有1个图片和自定义的属性值),可以实现控件的移动(已会)和缩放(还不会),当鼠标移到某个控件上时,能够显示该控件的一些属性.有点像visio的功能.
缩放只是想要实现类似于打印预览的缩放.
主要有两个方面的问题:
1\控件应从哪个类中开始继承较好;
2\如果实现像打印预览一样的缩放功能;

解决方案 »

  1.   


    参考套件 SGraph//================================================================================================SGraph控件在Delphi7下的安装
                                           
    SGraph控件在Delphi7下的安装
    SGRAPH是一个DELPHI环境下绘制X-Y座标图的免费构件,提供缩放图形等功能。作者 : Sergei P.Pod'yachev。
    [海阔天空下载站]
    http://www.hktk.com/soft/soft_con_image/sgraph.html
    32 Bit Delphi 深度历险
    http://www.vclxx.org/DELPHIGB/AAAT1025.HTM
    ( 2.40 版,附源码 )
    以上网站提供下载。
    由于该控件只提供D3、D4、D5版本,在D7下成功安装使用需要一些改动,下面把我的经验告诉大家:
    1、下载压缩包SGRAPH.ZIP解压后,将以下文件COPY到C:\Program Files\Borland\Delphi7\Lib(Delphi7的安装目录)文件夹内:
    sgr5.dpk
    sgr_data.pas
    sgr_def.pas
    sgr_eds.pas
    sgr_.pas
    sgr_misc.pas
    sgr_reg.pas
    sgr_scale.pas
    sgr_reg.dcr
    2、打开D7,FILES/CLOSE ALL
    3、FILES/OPEN
    打开C:\Program Files\Borland\Delphi7\Lib\sgr5.dpk
    出现一个Error错误对话框:
    Cannot find resource file:C:\Program Files\Borland\Delphi7\Lib\sgr5.res.Recreated.
    (找不到sgr5.res资源文件,重建)
    点击OK.
    4、出现Package-sgr5.dpk(包编译安装窗口)
    5、出现一个Confirm窗口
    This package appears to be in an older format. Would you like to convert it to the new format?
    <Yes><No>
    (这个包用更旧的格式。 你愿意把它转化成新格式式吗?)
    选择<Yes>
    出现一个Information
    Update complete.<OK>
    6、Package-sgr5.dpk(包编译安装窗口)点击Compile(编译)
    打开sgr_data.pas
    出现很多
    [Error] sgr_data.pas(277): Undeclared identifier: 'VarArrayCreate'
    [Error] sgr_data.pas(279): Undeclared identifier: 'VarArrayHighBound'
    [Error] sgr_data.pas(335): Undeclared identifier: 'VarArrayHighBound'
    ......
    Undeclared identifier: '<name>' 未说明的标识符<NAME>
    Undeclared identifier: 'VarArrayCreate(未说明的标识符'VarArrayCreate')
    解决办法:在sgr_data.pas的use部分加入Variants
    uses
      Windows,SysUtils,Classes,Graphics,
      sgr_scale, sgr_def,Variants;
    然后Project/Syntax Check sgr5(语法检查),就不会报错了。再在Package-sgr5.dpk(包编译安装窗口)点击Compile(编译),也不会报错了
    7、在Package-sgr5.dpk(包编译安装窗口)点击install(安装)
    出现一个Information
    Package C:\Program Files\Borland\Delphi7\projects\Bpl\sgr5.bpl has installed.
    (C:\Program Files\Borland\Delphi7\projects\Bpl\sgr5.bpl包已经被安装)
    The following new component(s) have been registered:
    sgr_data.Tsp_SpectrLines,
    sgr_data.Tsp_XYLine,
    sgr_def.Tsp_XYPlot,
    sgr_eds.Tsp_ndsXYLines,
    sgr_.Tsp_ImageMarker,
    sgr_.Tsp_LineMarker.
    <OK>
    点击<OK>安装完成。
    8、FILES/CLOSE ALL关闭当前活动窗口
    出现一个Confirm
    Save changes to project sgr5?
    <Yes><No><Cancel>
    当然是<Yes>
    在D7的组件页中看到最后一页增加为Sgraph,里面为新增加的6个Sgraph控件。