刘德华 毛万胜 苏新
摘 要 在数据库管理系统中,有时需要对其中的图片进行相应处理,以满足显示和打印效果,本文详细介绍了在Delphi中,如何对数据库中的图像实现拖动、缩放和打印。
关键词 数据库,图像,拖动、缩放,打印
在编写管理系统的时候,经常会遇到要对数据库中的图像进行一系列的处理,如浏览、缩放、拖动、打印等。要浏览数据库中的图像不是一件难事,但是,要缩放和拖动图像却并不容易。特别是对图像在打印前进行排版,实现图像被拖到哪打到哪,实现所见即所得功能则更难。笔者在开发档案信息管理系统时,解决了上述问题。系统前台开发环境为Delphi6.0,后台数据库单机版不作限制,网络版采用SQL SERVER2000,这里以Microsoft Access数据库为例介绍。
一、设计思想
要实现上述功能可以充分利用Delphi中DBImage控件的功能,因为DBImage中的图像的高和宽属性是只读的,所以不能通过修改DBImage中的图像的高和宽属性来缩放图像。因此,只有把DBImage的Stretch属性设为True,此时只要修改DBImage控件的高度和宽度即可完成缩放图像的功能;拖动时只要即时修改DBImage的坐标即可实现图像的拖动;打印时只要用DBImage的坐标替换报表中的QRDBImage的坐标就可以实现打印时图像的定位,从而实现所见即所得的效果。
二、实现方法
1.数据库结构
首先可以构造如下表所示的数据结构,这将在后面的示例中用到。
数据结构表
字段名 |
类型 |
大小 |
Title |
文本 |
50 |
Locale_picture |
OLE对象 |
|
2.控件
在窗体上放置如下控件,DBImage1、BitBtn1、PopupMenu1。
3.设计
首先建立一个本地数据模块,连接上面所建立的数据库表,然后设置DBImage1的DataSource属性为DataModule23.tpzlk_DataSource;Cursor属性为crHandPoint,设置窗体的AutoScroll为False;Color属性为clBtnText;Name属性为Picture_Zoom;PopupMenu1各项如下图所示:
|