打印问题(30分)

  • 主题发起人 主题发起人 yeo
  • 开始时间 开始时间
Y

yeo

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.N6Click(Sender: TObject);
var
i:integer;
Handle: LongWord;
N: DWORD;
do
cInfo1: TDocInfo;
pDocName : PChar;
pOutputFile : PChar;
pDataType : PChar;
rr : Byte;
gg : integer;
begin
if not OpenPrinter('Star AR-3200', Handle, 0) then
begin
ShowMessage('error' + IntToStr(GetLastError));
Exit;
end;

withdo
cInfo1do
begin
pDocName:='testdo
c';
pOutputFile:=PChar(nil);
pDataType:='RAW';
end;

rr := StartDocPrinter(Handle,1,@DocInfo1);
//问题就在这里
gg := handle;
edit1.Text := inttostr(rr);
edit2.Text := inttostr(gg);
………………

现在我无论打印机设置为哪个,返回的handle都是同一个值;
而且在startdocprinter返回的总是0,请问原因是什么????
该如何解决???
 
引用PRINTERS 单元 不用去单独找打印机
 
引用Printers单元仅仅是找出对应的打印机名,我在这里列出打印机名的原因是简化程序段,使问题更清晰;
 
楼主的意思,自己用API调用打印功能,不用PRINTERS单元。
 
楼主十分强悍。重复利用资源的能力非常强。守分奴。
 
我想编一个程序
问题如下:
比较两个分数的大小。
输入:4/5,6/7,输出4/5 < 6/7;
输入:16/32,4/8,输出:16/32 = 4/8。
希望可以帮帮忙。
 
我是刚注册了一个帐号,还不能在论坛里提问,要两天后才行
而我急需解决这个问题
希望楼主可以帮帮忙
 
对于“地质灾害”的回答,我仅能说,我提出的问题,没有人能帮我解决问题,而我后来自己解决了,但是我又不能收回分数,那我难道随便将分数给别人??就像你出去买东西,得不到满意的商品你还会给钱别人??
对于“不弯的月,我不知道你的问题解决了没有?你这个仅需将变量设置为浮点数即可;至于你的输入,假设是EDIT的话,用StrToFloat就可以了
 
我已经已经解决。非常谢谢楼主。至于你的建议我不是很理解,我水平有先限。
答案如下:希望各位给点建议!
#include <stdio.h>
#include <stdlib.h>
void main()
{
float a[4];
int j=0,k[4]={0};

char ss[80],s[4][40],*i;
printf("Enter a/b,c/d : ");
scanf("%s",ss);
for(i=ss;*i;i++)
if(*i==','||*i=='/')j++;
else
{ s[j][k[j]]=*i;k[j]++;
}
for(j=0;j<4;j++)
{
s[j][k[j]]='/0';
a[j]=atof(s[j]);
}
if(a[0]/a[1]>a[2]/a[3])
printf("%s/%s > %s/%s/n/n",s[0],s[1],s[2],s[3]);
else
if(a[0]/a[1]==a[2]/a[3])
printf("%s/%s = %s/%s/n/n",s[0],s[1],s[2],s[3]);
else
printf("%s/%s < %s/%s/n/n",s[0],s[1],s[2],s[3]);
getch();
}
 
后退
顶部