重置delphi Printer对象
http://www.efg2.com/Lab/Library/UseNet/1999/0714b.txt
From: "Nick Ryan" <nick@avatardesign.co.uk>
Subject: Re: D1 printing problem: incorrect font sizes
Date: 14 Jul 1999 00:00:00 GMT
Message-ID: <7mi4cp$2ot9@forums.borland.com>
References: <378C94B3.DFDF6FEB@bergsoft.de>
X-Priority: 3
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211
Organization: Another Netscape Collabra Server User
X-MSMail-Priority: Normal
Newsgroups: borland.public.delphi.winapi,borland.public.delphi.objectpascal Daniel Berg (Berg Soft) <berg@bergsoft.de> wrote in message
news:378C94B3.DFDF6FEB@bergsoft.de...
> Hi there,
>
> I've got the following the following problem using D1 (on D2 and later
> the problem does not occur)
>
>
> I can select different printers with different resolutions from the
> printdialog.我可以从打印机对话框里 选相应不同分辨率的不同打印机。
> Printing to any printer works fine when the prog just started (i.e:
> Printing to Printer1, then shutdown prog, run again, then print to
> Printer 2 works perfect). 当程序刚启动时,打印到任何一个打印机都是正常的。比如打印到 打印机1,然后关闭程序。 再次运行,然后打印 到 打印机2,一起正常。
>
> Printing to a second printer AFTER printing to a first printer scales
> all fonts by
>
> Resolution(Printer1)/resolution(Printer2);
打印到第一个打印机后,(不关闭程序)直接再打印到第二个打印机时,缩放了所有的字体 以
第一个打印机 分辨率 / 第二个打印机分辨率 的比例。
>
> I have already tried the following without success:
>
> - Creation of the form that uses the printers unit at runtime AFTER
> printdialog.execute to create a new printer instance everytime
>
> - I have checked printers resolution with GetDeviceCaps: printer
> change is recognized correctly.
>
> Does anyone has an idea of whats wrong? It's some weird bug in Delphi's TPrinter that causes information to be
retained from a previous print session. (It affects the line thickness of
printing using D3). 这是打印机对象中的一些奇怪BUG。导致信息 从前一次打印会话中 保留。 The following code forces a complete refresh of the Printer object in D3 -
it *should* work in D1 as well... procedure ResetTPrinter;
var
APrinter:TPrinter;
begin
if (not Printer.Printing) then begin
APrinter := SetPrinter(NIL);
if (APrinter <> NIL) then APrinter.Free;
end; {if}
end;
//我看新版的VCL源代码里直接 一行代码 就行了 SetPrinter(nil).Free; Nick
重置delphi Printer对象的更多相关文章
- 多线程的基本概念和Delphi线程对象Tthread介绍
多线程的基本概念和Delphi线程对象Tthread介绍 作者:xiaoru WIN 98/NT/2000/XP是个多任务操作系统,也就是:一个进程可以划分为多个线程,每个线程轮流占用CPU运行 ...
- delphi:临界区对象TCriticalSection(Delphi) 与 TRtlCriticalSection 的区别
临界区对象TCriticalSection(Delphi) 与 TRtlCriticalSection 的区别 TRtlCriticalSection 是一个结构体,在windows单元中定义: 是I ...
- Delphi 绘图对象
来自:http://blog.csdn.net/lailai186/article/details/8755430 ========================================== ...
- Delphi栈对象
来自:http://blog.csdn.net/iseekcode/article/details/5158985 ------------------------------------------ ...
- Delphi GDI对象之绘制位图
http://www.cnblogs.com/pchmonster/archive/2012/07/06/2579334.html 绘制位图(Drawing Bitmaps) 绘制位图听起来似乎很难, ...
- Delphi中流对象的应用
Delphi的流对象(TStream的派生对象)有如下读写函数: function Read(var Buffer; Count: Longint): Longint;function Write(c ...
- Delphi的对象注销方法Destroy和free
当您使用完对象后,您应该及时撤销它,以便把这个对象占用的内存释放出来.您可以通过调用一个注销方法来撤销您的对象,它会释放分配给这个对象的内存. Delphi的注销方法有两个:Destroy和Free. ...
- Delphi - 互斥对象下实现系统的单例模式
使用CreateMutex函数创建互斥对象 利用Windows系统函数CreateMutex(),找出当前系统是否已经存在指定进程的实例,如果没有则创建一个互斥体. CreateMutex函数原型如下 ...
- Delphi COM对象
作者:巴哈姆特 http://www.cnpack.org(转载请注明出处并保持完整) 如果没有接触过COM对象的话,你会觉得接口真的很麻烦,也许会有:“还不如直接定义一个类更方便”的想法. 的确, ...
随机推荐
- 权限管理,pymysql模块
权限管理 权限管理重点 MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL ...
- 常用模块之 shutil,json,pickle,shelve,xml,configparser
shutil 高级的文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中 import shutil shut ...
- windows10下cygwin安装神器apt-cyg
一.背景 需要在cygwin下安装一些库 二.安装 2.1获取apt-cyg源码 git clone https://github.com/transcode-open/apt-cyg.git 2.2 ...
- BZOJ 3339 && luogu4137 Rmq Problem / mex(莫队)
P4137 Rmq Problem / mex 题目描述 有一个长度为n的数组{a1,a2,-,an}.m次询问,每次询问一个区间内最小没有出现过的自然数. 输入输出格式 输入格式: 第一行n,m. ...
- ActiveMQ 集群配置 高可用
自从activemq5.9.0开始,activemq的集群实现方式取消了传统的Pure Master Slave方式,增加了基于zookeeper+leveldb的实现方式,其他两种方式:目录共享和数 ...
- 【建表】ElasticSearch建表命令
使用google插件Postman 发送方式为PUT,url地址: 192.168.2.11:9200/IndexName 文本raw,数据为json格式 { "settings" ...
- Codeforces Round #530 (Div. 1)
A - Sum in the tree 就是贪心选尽量让上面的点权尽量大,那么对于偶数层的点,其到根节点的和即为所有儿子中的最大值. #include<bits/stdc++.h> usi ...
- 论文笔记——Factorized Convolutional Neural Networks
1. 论文思想 将3D卷积分解为spatial convolution in each channel and linear projection across channels. (spatial ...
- 《EMCAScript6入门》读书笔记——16.Generator函数的语法
鼠标指针移到图片上,右键,选择在“在新标签页中打开”,放大即可看到清晰文字.
- java面试项目经验:框架及应用
Java项目经验 Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1.掌握项目开发的基本步骤2.具备极强的面向对象的分析与设计技巧3 ...