请高手帮忙将下面bcb程序翻译成delphi的,这是一个有关打印设置的程序
DEVMODE *pDev;
LPPAGESETUPDLG mylp=new PAGESETUPDLG;
memset((void *)mylp,0,sizeof(PAGESETUPDLG));
mylp->lStructSize=sizeof(PAGESETUPDLG);
mylp->hwndOwner=this->Handle;
mylp->Flags=PSD_RETURNDEFAULT;
PageSetupDlg(mylp);
if (mylp->hDevMode!=NULL)
{
pDev=(DEVMODE *)GlobalLock(mylp->hDevMode);
pDev->dmPaperSize=OldPaperSize;
pDev->dmOrientation=OldOrientation;
mylp->rtMargin.left=OldLeft;
mylp->rtMargin.right=OldRight;
mylp->rtMargin.top=OldTop;
mylp->rtMargin.bottom=OldBottom;
GlobalUnlock(mylp->hDevMode);
mylp->Flags=PSD_MARGINS|PSD_INHUNDREDTHSOFMILLIMETERS;
if(PageSetupDlg(mylp))
{
pDev=(DEVMODE *)GlobalLock(mylp->hDevMode);
OldPaperSize =pDev->dmPaperSize;
if(OldPaperSize>28)OldPaperSize=9;//A4
OldOrientation=pDev->dmOrientation;
OldLeft =mylp->rtMargin.left;
OldRight =mylp->rtMargin.right;
OldTop =mylp->rtMargin.top;
OldBottom =mylp->rtMargin.bottom;
gFrmpt->QuickRep1->Page->Orientation=OldOrientation-1;
gFrmpt->QuickRep1->Page->PaperSize=OldPaperSize;
gFrmpt->QuickRep1->Page->LeftMargin=OldLeft/100;
gFrmpt->QuickRep1->Page->RightMargin=OldRight/100;
gFrmpt->QuickRep1->Page->TopMargin=OldTop/100;
gFrmpt->QuickRep1->Page->BottomMargin=OldBottom/100;
GlobalUnlock(mylp->hDevMode);
}
GlobalFree(mylp->hDevMode);
}
delete mylp;
QRPreview1->PageNumber=1;
gFrmpt->QuickRep1->Prepare();
gFrmpt->QuickRep1->Preview();
DEVMODE *pDev;
LPPAGESETUPDLG mylp=new PAGESETUPDLG;
memset((void *)mylp,0,sizeof(PAGESETUPDLG));
mylp->lStructSize=sizeof(PAGESETUPDLG);
mylp->hwndOwner=this->Handle;
mylp->Flags=PSD_RETURNDEFAULT;
PageSetupDlg(mylp);
if (mylp->hDevMode!=NULL)
{
pDev=(DEVMODE *)GlobalLock(mylp->hDevMode);
pDev->dmPaperSize=OldPaperSize;
pDev->dmOrientation=OldOrientation;
mylp->rtMargin.left=OldLeft;
mylp->rtMargin.right=OldRight;
mylp->rtMargin.top=OldTop;
mylp->rtMargin.bottom=OldBottom;
GlobalUnlock(mylp->hDevMode);
mylp->Flags=PSD_MARGINS|PSD_INHUNDREDTHSOFMILLIMETERS;
if(PageSetupDlg(mylp))
{
pDev=(DEVMODE *)GlobalLock(mylp->hDevMode);
OldPaperSize =pDev->dmPaperSize;
if(OldPaperSize>28)OldPaperSize=9;//A4
OldOrientation=pDev->dmOrientation;
OldLeft =mylp->rtMargin.left;
OldRight =mylp->rtMargin.right;
OldTop =mylp->rtMargin.top;
OldBottom =mylp->rtMargin.bottom;
gFrmpt->QuickRep1->Page->Orientation=OldOrientation-1;
gFrmpt->QuickRep1->Page->PaperSize=OldPaperSize;
gFrmpt->QuickRep1->Page->LeftMargin=OldLeft/100;
gFrmpt->QuickRep1->Page->RightMargin=OldRight/100;
gFrmpt->QuickRep1->Page->TopMargin=OldTop/100;
gFrmpt->QuickRep1->Page->BottomMargin=OldBottom/100;
GlobalUnlock(mylp->hDevMode);
}
GlobalFree(mylp->hDevMode);
}
delete mylp;
QRPreview1->PageNumber=1;
gFrmpt->QuickRep1->Prepare();
gFrmpt->QuickRep1->Preview();
解决方案 »
- 求 DES和3DES的加密源码
- 怎么得到当前日期
- 怎么把数据游标指到表中的第N条纪录!
- 我需要帮助,有个字符里面替换部分字符的功能,不知怎么实现.
- 怎样控制程序播放声音的大小
- 哪里有電子書下載??
- delphi基础求教
- 免费pascal和C++:http://www.freepascal.org/和http://www.bloodshed.net/devpascal.html
- 请教启动NT的服务的Windows API 函数是什么?谁能提供查找API函数的站点?谢谢了!
- DELPHI的自动完成功能这么慢吗?
- 有关在delphi 中调用 sql server 的DTS 保存成的文件的问题(高手请进)急
- 急,如何讓自己的按鈕和Navigator同步?
var
pDev : DEVMODE;
mylp : TPageSetupDlg;
OldPaperSize, OldOrientation, OldLeft, OldRight, OldBottom, OldTop : SHORT;
begin
FillChar(mylp, SizeOf(mylp), 0);
mylp.lStructSize := SizeOf(TPageSetupDlg);
//mylp.hInstance := System.HInstance; //mylp.Flags := PSD_MARGINS; mylp.hwndOwner:=self.Handle;
mylp.Flags:=PSD_RETURNDEFAULT;
PageSetupDlg(mylp);
if (mylp.hDevMode <> NULL) then
begin
//pDev:=GlobalLock(mylp.hDevMode);
pDev.dmPaperSize:=9;
pDev.dmOrientation:=0;
mylp.rtMargin.left:=Left;
mylp.rtMargin.right:=90;
mylp.rtMargin.top:=0;
mylp.rtMargin.bottom:=200;
GlobalUnlock(mylp.hDevMode);
mylp.Flags:=PSD_MARGINS or PSD_INHUNDREDTHSOFMILLIMETERS;
if(PageSetupDlg(mylp)) then
begin
//pDev:=(DEVMODE *)GlobalLock(mylp.hDevMode);
OldPaperSize :=pDev.dmPaperSize;
if(OldPaperSize>28) then
OldPaperSize:=9;//A4
OldOrientation:=pDev.dmOrientation;
OldLeft :=mylp.rtMargin.left;
OldRight :=mylp.rtMargin.right;
OldTop :=mylp.rtMargin.top;
OldBottom :=mylp.rtMargin.bottom;
{gFrmpt.QuickRep1.Page.Orientation:=OldOrientation-1;
gFrmpt.QuickRep1.Page.PaperSize:=OldPaperSize;
gFrmpt.QuickRep1.Page.LeftMargin:=OldLeft/100;
gFrmpt.QuickRep1.Page.RightMargin:=OldRight/100;
gFrmpt.QuickRep1.Page.TopMargin:=OldTop/100;
gFrmpt.QuickRep1.Page.BottomMargin:=OldBottom/100;
GlobalUnlock(mylp.hDevMode); }
end;
GlobalFree(mylp.hDevMode);
end;
//delete mylp;
//QRPreview1.PageNumber:=1;
//gFrmpt.QuickRep1.Prepare();
//gFrmpt.QuickRep1.Preview(); }
请问怎么解决
ADevice,ADriver,Aport:array[0..255] of char;
DeviceHandle:THandle;
DevMode:PDeviceMode;
Printer:TPrinter;
begin
Printer.PrinterIndex:=Printer.PrinterIndex;
Printer.GetPrinter(ADevice,ADriver,Aport,DeviceHandle);
也是出错,请问怎么回事啊
再现等待