如何在运行中利用printsetup 组件中的打印纸张大小来设置QREPORT中的纸张大小。

chin999 2000-09-09 12:26:00
...全文
148 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
benzz 2000-09-14
  • 打赏
  • 举报
回复
你很走运,有97年写的代码一定可行
http://www.chinaprogrammer.com/softshow/program/index.asp(5。0报表)有我写的控件中就有以下代码,不过你自己得优化一下


Procedure TFrmprint.prisetup(Var Msg : TMessage);
VAR BOOL_1:BOOLEAN;
devmode1:pdevmode;
begin
// exit;
//showmessage(inttostr(mrsource.dataset.recno));
if panel4.visible=true then
begin
exit;
end;
//1.22
hdevmode1:=copydata(hdevmode);
hdevnames1:=copydata(hdevnames);

setprinter(hdevmode1,hdevnames1);
//1.22

if frmprint<>nil then
if frmprint.pri1.execute then
begin
//1.22
GetPrinter(DevHandle, hDevNames);
hdevmode:=copydata(devhandle);
//1.22

BOOL_1:=TRUE ;//pri1.execute;
IF BOOL_1 THEN
BEGIN
frmprint.report.Page.Orientation:=printer.Orientation;
{
if frmprint.report.Page.Orientation=poPortrait then
begin
if (printer.pagewidth>100)and(printer.pagewidth<170) then
frmprint.report.Page.papersize:=A5
else
begin
if (printer.pagewidth>250) then
frmprint.report.Page.papersize:=A3
else
frmprint.report.Page.papersize:=A4;

end; //a5
end //height
else //横向
begin
if (printer.pageheight>100)and(printer.pageheight<170) then
frmprint.report.Page.papersize:=A5
else
begin
if (printer.pageheight>250) then
frmprint.report.Page.papersize:=A3
else
frmprint.report.Page.papersize:=A4;

end; //a5

end; //横向
}
devmode1:=pdevmode(globallock(hdevmode));

if devmode1^.dmpapersize=dmpaper_a3 then
frmprint.report.Page.papersize:=A3;
if devmode1^.dmpapersize=dmpaper_a4 then
frmprint.report.Page.papersize:=A4;
if devmode1^.dmpapersize=dmpaper_a5 then
frmprint.report.Page.papersize:=A5;
if devmode1^.dmpapersize=DMPAPER_LETTER then
frmprint.report.Page.papersize:=LETTER;
if devmode1^.dmpapersize=DMPAPER_LETTERSMALL then
frmprint.report.Page.papersize:=LETTERSMALL;
if pricount>1 then
prinumber:=0
else
prinumber:=1;

progressbar1.position:=0;
LblPageNumber.Caption := IntToStr(1);
QRPreview.PageNumber:=1;
timer1.enabled:=true;
panel4.visible:=true;
report.preview;
END; //bool_1
end; //execute
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧