说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在DELPHI 文 本 和 图 形 的 打 印

HTML文档下载 WORD文档下载 PDF文档下载
在DELPHI 文 本 和 图 形 的 打 印

对 于 每 一 个WINDOWS 应 用 程 序 开 发 者 来 说, 打 印 功 能 的 实 现 都 是 极 为 棘 手 的, 因 为 要 涉 及 到 相 当 多 的 代 码 而 且 常 常 是 相 当 的 复 杂, 但 是 在DELPHI 中 实 现 文 本 和 图 象 的 打 印 功 能 却 是 非 常 容 易 的。

1、 文 本 的 打 印 功 能。DELPHI 中 文 本 的 打 印 功 能 就 如 同 在DOS 中 实 现 文 本 的 打 印 功 能 一 样 容 易, 需 要 做 的 一 切 只 是 取 得 打 印 参 数, 打 开 打 印 机, 然 后 发 送 文 本 的 每 一 行 内 容。 在DELPHI 中 提 供 了 一 个PRINTERS 程 序 单 元, 它 说 明 了 一 个TPRINTER 对 象, 封 装 了WINDOWS 打 印 工 作 和 输 出 打 印 机 之 间 的 接 口, 并 提 供 常 用 的 属 性 和 方 法, 其 中 画 布CANVAS 是 一 个 非 常 有 用 的 属 性, 它 代 表 了 当 前 打 印 文 件 的 表 面, 是 以 图 形 方 式 来 工 作 的, 整 个 的 打 印 输 出 工 作 仅 仅 是 将 你 打 印 的 内 容 输 出 到TPRINTER 的 属 性CANVAS 上, 当 全 部 的 输 出 工 作 完 成 以 后, 打 印 对 象(TPRINTER) 把CANVAS 的 属 性 值 送 到 打 印 机 上 去。

下 面 举 例 来 说 明 如 何 通 过DELPHI 实 现 文 本 内 容 的 打 印。 在DELPHI 中 提 供 了PRINTDIALOG、PRINTERSETUPDIALOG 两 个 控 件 允 许 我 们 进 行 打 印 机 以 及 其 他 影 响 打 印 输 出 的 选 择, 此 外 最 重 要 的 一 点 是 要 想 实 现 打 印 功 能 必 须 在 编 译 程 序 以 前 将PRINTERS 加 入 到INTERFACE 或 者IMPLEMENTATION 的UESE 语 句 当 中, 因 为PRINTER 单 元 包 括ASSIGNPRN 和 其 他 控 制 打 印 机 的 过 程。

首 先 在FORM 当 中 加 入MEMO、PRINTDIALOG、PRINTERSETUPDIALOG 和 两 个BUTTON 控 件, 两 个 BUTTON 的CAPTION 分 别 为“ 打 印 设 置” 和“ 打 印”。 然 后 编 写BUTTON 的 事 件 驱 动 程 序( 代 码 在 下 面), 这 个 简 单 的 例 子 中 只 要 单 击“ 打 印” 按 钮 时 便 可 以 在 打 印 机 上 输 出 文 件0S2.TXT, 打 印 事 件 的 清 单 如 下:

implementation

uses printers;

{$R *.DFM}

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

printersetupdialog1.execute; //选择输出的打印机以及其他打印控制选项

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

var

lines:integer;

prntext:system.text;

//将PRNTEXT声名为一个在SYSTEM程序单元当中定义的文本文件

begin

if printdialog1.execute then

assignprn(prntext); //将PRNTEST分配给打印机

rewrite(prntext); //调用REWRITE函数,为输出打开已分配的文件

printer.canvas.font:=memo1.font;

//把当前MEMO1的字体指定给打印对象的CANVAS的字体属性

for lines:=0 to memo1.lines.count-1 do

writeln(prntext

memo1.lines[lines]);

//把MEMO的内容写到打印机对象

system.close(prntext); //关闭打印文件

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

memo1.lines.loadfromfile('c:\dos\os2.txt');

//在FORM建立时读入C:\DOS\OS2.TXT文件

end;

end.

2、 图 形 的 打 印 功 能

简 单 的 图 形 打 印 功 能 也 如 打 印 文 本 一 样 的 容 易, 只 是 告 诉 打 印 机 对 象(TPRINTER) 开 始 打 印, 把 图 形 简 单 的 复 制 到 打 印 机 上 去, 最 后 告 诉 打 印 机 结 束 打 印 工 作。

举 例 说 明: 将 上 面 的 例 子 的MEMO 控 件 换 成IMAGE 控 件, 再 经 过 一 些 简 单 的 修 改, 图 形 打 印 的 代 码 如 下:

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

if printdialog1.execute then

begin

printer.begindoc;

printer.canvas.draw(0

0

image1.picture.graphic);

printer.enddoc;

end;

end;

在 这 种 情 况 下, 使 用 的 是 打 印 机 的 分 辨 率, 图 形 在 页 面 的 左 上 角 开 始 打 印 输 出, 打 出 的 图 形 很 小, 在 很 多 的 情 况 下 不 能 符 合 要 求, 但 是 打 印 机 画 布CANVAS 的STRETHDRAW 的 方 法, 可 以 让 我 们 对 图 形 进 行 灵 活 的 处 理, 画 布(CANVAS) 的STRETCHDRAW 方 法 声 名 为:

procedure StretchDraw(const Rect: TRect; Graphic: TGraphic);

其中的RECT参数代表图形输出区域的大小,TRECT的类型声名为:

TRect = record

case Integer of

0: (Left

Top

Right

Bottom: Integer);

1: (TopLeft

BottomRight: TPoint);

end;

因 此 我 们 只 要 调 整RECT 的 大 小 及 其 在 打 印 页 面 上 的 位 置, 进 而 达 到 自 己 满 意 的 效 果, 下 面 的 代 码 是 不 断 的 放 大 图 形, 充 满 我 们 定 义 的 矩 形 区 域, 并 将 其 定 位 在 打 印 机 画 布(CANVAS) 的 中 央 进 行 输 出。 代 码 如 下:

procedure TForm1.Button1Click(Sender: TObject);

VAR

strect:Trect; //定义打印输出矩形框的大小

temhi

temwd:integer;

begin

if printdialog1.execute then

begin

temhi:=image1.picture.height;

temwd:=image1.picture.width;

while (temhi printer.pageheight div 2)and

//将图形放大到打印页面的1/2大小

(temwd printer.pagewidth div 2) do

begin

temhi:=temhi+temhi;

temwd:=temwd+temwd;

end;

with strect do //定义图形在页面上的中心位置输出

begin

left:=(printer.pagewidth -temwd) div 2;

top:=(printer.pageheight-temhi) div 2;

right:=left+temwd;

bottom:=top+temhi;

end;

with printer do

begin

begindoc;

//将放大的图形向打印机输出

canvas.stretchdraw(strect

image1.picture.graphic);

enddoc;

end;

end;

end;

以 上 代 码 在DELPHI2.0 上 编 译 通 过, 通 过 这 些 小 小 的 例 子, 相 信 大 家 对 于 在DELPHI 中 打 印 图 形 和 文 本 有 一 定 的 了 解, 同 样 通 过 打 印 机 的 画 布(CANVAS) 属 性 也 可 以 实 现 数 据 库 表 单 的 打 印, 在 这 里 不 一 一 赘 述, 如 果 大 家 有 兴 趣 不 妨 一 试。

VB如何检查您的电脑是否打开 ActiveDesktop? VB如何将程序建立成“启动”文件夹的捷径? VB如何将程序建立成「启动」资料夹的捷径。 VB如何结束 Shell 所启动的程序? VB如何拦截键盘输入 如何判定VB调用的一个EXE程序已经结束. VB如何判断某一个Drive是否为光碟机? VB如何清空回收站? VB如何取得汉字的区位码 VB如何去优化你的VB程序 VB如何让点阵打印机每次印出一行? VB如何设计一个可中断循环的按钮。 VB如何实现VB程序登录密码加密 VB如何使程序不出现在任务列表中 VB如何使键盘、Mouse失效(JournalPlayBack Hook) VB如何使用 DBGrid VB如何突破 TextBox 32K 的限制? VB如何为执行程序加上参数? VB如何压缩较长的全路径文件名中的路径 (Path) 字串长度? VB如何在VB中实现密码的读取 如何在VB中使用命令行参数 VB如何在内存中的指定位置取数据? VB如何在已经存在的文本的textbox添加新的一行 VB如何在資料庫中存入單引號? VB如何正确使用VB6访问Access2000数据库 VB如何自动记录计算机开机时间? VB如何做到当我们单击窗体的最小化和关闭按钮时,窗体先最小化到任务栏成为按钮,然后消失呢?金山词霸能 软件工程篇-Const与#Const的对比 -VB资料 软件工程篇-从Visual Data Manager开始 -VB资料 软件工程篇-理解错误处理代理 -VB资料 软件工程篇-清空集合内容的几种方法 -VB资料 如何制作登陆窗口? 关于中大型网站如何应用软件工程的问题 求救高手,如何使双硬盘同步写 请问怎样在用户点击(s)后将用户点击的软件自动安装到用户(c)的机器上 请问如何用网站提供的搜索引擎,知道查找关键字,我用的是WebBrowser1,100分呀 tomacat的配置问题?急 学过严蔚敏的〈数据结构(C语言版)〉的请进! 开发过nokia上运行程序的朋友,请进来,本人遇到一个非常麻烦的问题,欢迎各位赐教. 如何从字符串中提取单词? 谁知道那里有longhorn下载??? 100分请教实现播放列表的思路? 有关图形化公交车线路的问题!! 关于网站软件工程的问题 我的sqlserver 2000 在安装的时竟然说什么不支持??? 免费ASP空间申请 有关用Firework作网页模板的问题-急! 大虾请指点~~!!~~ 如何固定游戏中的分辨率? 今天见到了蓝心MM,估计她是CSDN有史以来最PL的MM。 也来贴一篇!!!送给大学毕业几年的哥们!(转) 急:关于weblogic的控制台 ? 请问各位:哪里有好的javascript的教程? 小问题 请问在哪里可以找到监控局域网的网络流量的工具,不够再加? 免费ASP空间申请 白羊座的进来领分,水园里白羊座好像很少。。。。 ie无法编译jsp? 300分!求《程序员增值合订本》上册中的"完全掌握TCppWebBrowser控件"内容! Google搜索从入门到精通(散分) 由于工作需要,将要转到Linux平台,请问那位知道有什么好的SQL Client在Linux下? 由于工作需要,将要转到Linux平台,请问那位知道有什么好的SQL Client在Linux下? 你是怎么过的?CSDN无高人?:( 找asp.net入门经典!一定是C#写的!!!在线等! 菜鸟的关于DataGrid的问题 资源管理器中选中的多个文件怎样传给我的程序 什么是“三层数据库”和“嵌入式软件系统”? 什么是“三层数据库”和“嵌入式软件系统”? 类似"hello world"的简单问题,求教 免费ASP空间申请,支持ACCESS 事件的终止? 数据追加求教:谢谢您!!!! 请问InputBox在framework 类库里面有没有代替的阿? 为什么我写到文件中的字符总长度比我实际应该要写的多? 如何使dbctrlgrid多选,并使鼠标右击相当于鼠标左击 关于静态IP地址,急!!! 如何将tomcat做为windows的一项服务启动? 请问各位大虾,哪有paradox(INPRISE 公司产品)数据库(*.DB)的资料? 非法操作的问题 请问各位大虾,哪有paradox(INPRISE 公司产品)数据库(*.DB)的资料? 各位大虾救命啊!请问怎么在一个DIALOG中使用RICHEDITVIEW,谢谢大家了 发光强度(光度)的含义是什么? 求求你了,回答我吧 修(取下)门把手要注意哪些问题? 市场上什么样的纯牛奶最安全 Let me ___ it under water,put some medicine on it and put a bandage on it. 现有等质量的SO3与SO2气体,计算 1.SO3与SO2的物质的量之比为多少 2.SO3与SO2的分子数之比为多少 3.SO3与S现有等质量的SO3与SO2气体,计算1.SO3与SO2的物质的量之比为多少 2.SO3与SO2的分子数之比为多 请问b选项和d选项. 1+1=?, 聊天室 英文怎么说求求、各位哥哥姐姐. 高二生物D选项哪里错了 You should put some medicine on your cut.(变否定) 细菌耐药怎么办?别滥用抗生素 高二生物37的b选项为什么是错误的!无法理解T^T 3Q 已知2^a=3,2^b=6,2^c=9,求abc之间的关系. 世界上亮度最低的地方观赏星星最佳的地方,不受光污染,星星亮度最高 我要20篇400字的日记我想不出来这20篇400字的日记,所以想请你们帮帮忙 在▲ABC中,a:b:c=2:√6:(√3+1),求A、B、C. tired……need a nap 外国人会这样讲么,还是说have a nap 200字日记你今天发生的事拜托各位了 3Q i want to have 氧化镁和盐酸为什么不反应? 为什么顺式-Pt(NH3)2Cl2的水溶解度比反式大?请从配合物分子的结构本身说明. I want to have a gilefriend Why don't you have a afternoon nap? excel2010如何同时画折线柱形图 核内质子数为10的元素是什么 请问一下知道了分光度之类的要怎么计算呢 He used to have a nap.一般疑问句.为什么是Did he use to ……而不是did he used to ……?used 明明是形容词啊 门把手松了怎么修?我的卧室门的把手松了,关门时一拉就出来,很怕将来掉下来,开不了门,是不是螺丝松了,该怎么修呢补充:我的门把手不是球型的,是那种普通长把手,我看见把手根部有颗小 化学反应工程的研究内容 我理解的艺术是能给人带来美的享受的, 向氯化铝溶液中滴加氨水,为什么一开始就有沉淀了?铝离子不是要结合三个氢氧根才产生沉淀么? [Co(en)2Cl2]Cl中心离子的电荷及配位数 懋字 怎么表达美的意思 玻璃地弹簧门拉手的高度怎么确定,有没有规范要求? 化学命名[CO(en)2cl2]cl命名,中心离子,配位体那配位数是几阿 some kids play soccer ————every weekendclean if live there open world park and turn hour come hungry选一个 有谁知道这些英文缩写是什么意思?CYLPCDRBTEA这些都是计量单位的缩写 化学反应工程开发中需要手机哪些数据?细致一点,答得好加分... 求求你啊 这个结构怎样在计算机上画出一样的? 初三比较重要的化学方程式 求求你,怎做 问一些英语缩写的意思1.IT 2.MTV 3.WTO 4.VCD 5.CEO Pt(NH3)2Cl2的同分异构体,可溶于水,可治疗癌症结构简式是什么?为什么呢? 求求你了! 哪里有可以提高英语的聊天室,最好是国外的 “消光度”的定义是什么? 求求你,告诉我吧 这段英文简写谁看得懂啊ur age is same like ma younger bro.my bro is sixteen.he is grt 11.wut std r u in? 前面几行还行,但最后一行就不行了,看不懂啊 Pt(NH3)2Cl2 中心离子是Pt2+,配位体是NH3和Cl-,它有顺式和反式两种异构体.如图为什么cl-也是配位体而不提供孤电子对 告诉我吧,求求你啦 镁和盐酸反应快还是氧化镁和盐酸反应快 “黑亮度”的定义 与电源正极相连的试管内产生的气体是氧气 这句话哪里错了? 如何修理防盗门的门把手?2000年安装的沈阳摩云牌防盗门,门把手螺丝松了,用着不方便,在里面没有一个小垫板就没法固定门把手,很别手,不知道哪有安装门把手的制式小垫板,或者谁知道哪有 什么是烛光亮度?定义是什么? 英语翻译八年级下册英语第一单元句子翻译中文 Camfrog 进不了外国的聊天室了,只能进中国的了.现在怎么只能进中国的了,进不了欧洲了吗.上面显示只有一个CHINA了. 港媒:三中全会或开启中国“黄金时代”美国官员称奥巴马对监听各国政要事并不美学者:星巴克咖啡在中国必须贵 否则湖南纪委回应干部突击办酒:发现即查处最高法:健全和完善错案评价标准和问责霍英东遗产案于其忌日开庭 一方被批“汉字听写缺少科技内容:不能钻到茴香豆世界新闻报窃听丑闻开审 卡梅伦政府威叙利亚电子军自称攻破奥巴马推特账户日本9月份失业率降至4%摄影发烧友新宠:3D打印遮光罩(图)翘臀又嘟嘴 壮汉翻拍“性感照”遭吐槽美国在罗马尼亚反导基地开工建设【高清暴风雨影响法国数万家庭用电暴风雨影响法国数万家庭用电16岁少女网聊遭2名男子下药轮奸 醒男子将手伸进女子短裤乱摸日媒:中日论坛达成共识力避冲突 赵启中央财政采取多种措施 加快拨付农业综斯诺克国锦赛丁俊晖晋级次轮 手握赛点跨境电商游走政策灰色地带 诸多问题仍王毅与日外相岸田文雄非正式会面 谈及广州:裸官将不能担任要职 官员个人事国家旅游局副局长杜江:把西藏建设成世俄罗斯部长:西方制裁俄也不会有损中国贝儿新西兰狂吻杨阳洋 要与多多“结婚蓝色星际中国人民大学平安校园成功案例海外华人二代如何避免成为“香蕉人” 韩女星河莉秀近照曝光 穿低胸短裙露大官方战史 VS“报告文学”——甲午战宁玉新解读五千年文化为什么能惠济全民南昌大学推行学生\"自主保洁\"遇挫书尚真纯 —洪铁军 普通法师书法展圆中国庆华与哈萨克斯坦石油天然气集团达阿联酋国家航空首架A380亮相(组图金正恩再度缺席最高人民会议 20多天院士李培根重庆大学演讲 全程无人睡觉钱理群:现在谁都不愿像鲁迅那样对待现中国贸易展在危地马拉开幕记者手记:热情的笑声响彻山谷(高清组朝鲜决定全面实施12年义务教育阿根廷无人机发现200多栋未报税别墅
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘