我在窗体上放了一个button然后填写代码如下:
procedure TForm1.btn1Click(Sender: TObject);
begin
MyPrinter := TPrinter.Create;
MyPrinter.Canvas.Font.Size := 14;
MyPrinter.BeginDoc;
MyPrinter.Canvas.TextOut(100,200,'打印测试');
MyPrinter.EndDoc;
end;
运行后,点击按钮,探出保存打印对话框(我笔记本上是office的虚拟打印机),输入文件名后点击保存就马上弹出内存错误的框。大家看该怎么办!
procedure TForm1.btn1Click(Sender: TObject);
begin
MyPrinter := TPrinter.Create;
MyPrinter.Canvas.Font.Size := 14;
MyPrinter.BeginDoc;
MyPrinter.Canvas.TextOut(100,200,'打印测试');
MyPrinter.EndDoc;
end;
运行后,点击按钮,探出保存打印对话框(我笔记本上是office的虚拟打印机),输入文件名后点击保存就马上弹出内存错误的框。大家看该怎么办!
解决方案 »
- delphi 调用excel宏
- **delphi 还原数据库***
- 请高手帮忙,如何获取网络上共享文件夹对某一用户的权限的设定。
- 如何能在XLS文件被Excel打开的情况下(可读可写)的情况,也能通过程序(用ADO连接)去读取XLS文件???
- 一个小问题:线程优先级
- 要求字段a的值为1是打印‘yes’,值为0是打印‘no',如何实现。谢谢
- 救急————〉关于安装程序的制作(斑竹,救我)
- 关于使用数据控件进行MIS系统开发利弊的讨论
- 我用存储过程网数据库里面存数据,可是为啥存进去的都不完整?!
- 怎样才能让局域网上的计算机只能访问特定的网站?譬如CSDN
- 路过T场子\(^o^)/~
- 【热】秩为0的 SafeArray 被传递到需要秩为1的数组的方法中【请教】
Printer.GetPrinter(ADevice, ADriver, APort, DeviceHandle);
DevMode := GlobalLock(DeviceHandle);
with DevMode^ do
begin
dmFields:=dmFields or DM_PAPERWIDTH;
dmPaperWidth:=trunc(SpinEdit5.Value*10);
dmFields:=dmFields or DM_PAPERLENGTH;
dmPaperlength:=trunc(SpinEdit6.Value*10);
if RadioButton1.checked
then begin
dmFields:=dmFields or DM_ORIENTATION;
dmOrientation:=DMORIENT_PORTRAIT;
PreviewFrm.PrintPreview1.Orientation := poPortrait;
end
else begin
dmFields:=dmFields or DM_ORIENTATION;
dmOrientation:=DMORIENT_LANDSCAPE;
PreviewFrm.PrintPreview1.Orientation := poLandscape;
end;
end;
Printer.PrinterIndex : 开始打印页
NewPage;
BeginDoc;
......
EndDoc;
printer.begindoc;
.
.
.
printer.enddoc;