重置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对象的话,你会觉得接口真的很麻烦,也许会有:“还不如直接定义一个类更方便”的想法. 的确, ...
随机推荐
- openwrt的编译方法
1.获取最新包 ./scripts/feeds update -a 2.安装包 ./scripts/feeds install -a 3.配置 make menuconfig 4.编译 make -j ...
- 在terminal下的快捷键
1.回到行首的快捷键:ctrl + esc 2.ctrl+[可以替代esc
- BZOJ1304: [CQOI2009]叶子的染色 树形dp
Description 给一棵m个结点的无根树,你可以选择一个度数大于1的结点作为根,然后给一些结点(根.内部结点和叶子均可)着以黑色或白色.你的着色方案应该保证根结点到每个叶子的简单路径上都至少包含 ...
- 瞎折腾之Webhooks
之前听学长介绍过webhooks,也知道有这个东西,但没有真正的用于项目部署,长久以来一直过着“刀耕火种”的生活......长久以来,都是这么更新代码的: 由于之前做的项目刚刚上线,需要对其进行持续的 ...
- 洛谷P2777 [AHOI2016初中组]自行车比赛
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- poj 1144 Network 无向图求割点
Network Description A Telephone Line Company (TLC) is establishing a new telephone cable network. Th ...
- selenium-webdriver 简单教程
ruby环境下selenium/webdriver可以通过selenium-webdriver.gem包进行安装 gem install selenium-webdriver 支持语言及版本有ru ...
- [ios]安装CocoaPods及使用详解
最新 macOS Sierra 10.12.3 安装CocoaPods及使用详解 http://www.jianshu.com/p/b64b4fd08d3c CocoaPods的安装以及遇到的坑 ht ...
- C语言专题-基本数据类和占位符
C语言中常用的几种基本数据类型有 基本数据类型的长度 unsigned unsigned unsigned unsigned float没有unsigned double没有unsigned 占位符的 ...
- Paket介绍
在国外.NET社区有一个很火的话题是Packet(https://fsprojects.github.io/Paket/index.html ),它本质上是Nuget 之外的另一种方式管理.NET项目 ...