請問在winxp 和win98 下自訂報表尺寸的問題?? |
尚未結案
|
sawwewwe
一般會員 發表:6 回覆:10 積分:3 註冊:2004-06-08 發送簡訊給我 |
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
|
sawwewwe
一般會員 發表:6 回覆:10 積分:3 註冊:2004-06-08 發送簡訊給我 |
我貼上我的程式碼~~請指教一下~~是否那裡有錯~~~謝謝 function GetDefaultPrinter: string;
var
ResStr: array[0..255] of Char;
S,I:integer;
dPrinter:string;
begin
GetProfileString('Windows', 'device', '', ResStr, 255);
S := Length(StrPas(ResStr)); For I := 1 to S do
begin
if Copy(StrPas(ResStr),I,1) <> ',' then
dPrinter := dPrinter Copy(StrPas(ResStr),I,1)
else
Break;
end; Result := dPrinter;
end; // 自動設定紙張大小程式
procedure TForm1.Button6Click(Sender: TObject);
var _PPrinterInfo2 : PPrinterInfo2;
pPrinterName : PChar;
sPrinterName, sFormName : String;
hPrinter : THandle;
cbNeeded : DWORD;
dwBufferSize : DWORD;
begin
sFormName := '使用者定義大小';
sPrinterName := GetDefaultPrinter; // 取得預設印表機名稱
// 設定印表機的紙張大小名稱
if not WinSpool.OpenPrinter(PChar(sPrinterName), hPrinter, nil) then
raise Exception.Create('OpenPrinter Error, Code : ' IntToStr
(GetLastError));
WinSpool.GetPrinter(hPrinter, 2, nil, 0, @cbNeeded);
_PPrinterInfo2 := nil;
try
GetMem(_PPrinterInfo2, cbNeeded);
WinSpool.GetPrinter(hPrinter, 2, _PPrinterInfo2, cbNeeded,
@cbNeeded); with _PPrinterInfo2^.pDevMode^ do
begin
StrLCopy(dmFormName, PChar(sFormName), CCHFORMNAME -1);
//dmPaperSize := PaperSizeID(sPrinterName, sFormName);
dmFields := DM_FORMNAME;
// DM_PAPERSIZE
end;
// 不知為何 SetPrinter 一定會有錯誤 -> GetLastError
//ERROR_ACCESS_DENIED
// (即使以 Administrator 身份執行), 所以先把 raise 註解掉,
//Who could explain it for me ? Thanks.
if not WinSpool.SetPrinter(hPrinter, 2, _PPrinterInfo2, 0) then
; //raise Exception.Create('SetPrinter Error, Code : ' IntToStr(GetLastError));
finally
if _PPrinterInfo2 <> nil then
FreeMem(_PPrinterInfo2); _PPrinterInfo2 := nil;
end;
end; 之後就是有問題,我發現在執行過一次後,控制台裡印表機裡的試張選項就不見了所以沒辦法選擇,請問我是那裡做錯了~~謝謝 發表人 - sawwewwe 於 2004/06/09 10:02:09
|
fadichen
初階會員 發表:29 回覆:68 積分:29 註冊:2003-09-11 發送簡訊給我 |
|
sawwewwe
一般會員 發表:6 回覆:10 積分:3 註冊:2004-06-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |