喫茶XRAYトップページ

[スレッド全体
]

[9525] Re3:プリンタドライバの情報をDEVMODE構造体から取得返信 削除
2016/1/9 (土) 11:01:34 taki
理由はわかりませんが、PrinterSetupDialogの後にPrintDialogを
呼び出すと用紙の長さが変わります。(正常になります。)

procedure TForm1.Button3Click(Sender: TObject);
var
  ADevice     : array[0..MAX_PATH-1] of Char;
  ADriver     : array[0..MAX_PATH-1] of Char;
  APort       : array[0..MAX_PATH-1] of Char;
  ADeviceMode : THandle;
  ADevMode    : PDeviceMode;

begin
  if PrinterSetupDialog1.Execute then begin
    // 縦の長さを得る
    Printer.GetPrinter(ADevice, ADriver, APort, ADeviceMode);
    ADevMode := GlobalLock(ADeviceMode);
    try
      label1.Caption := inttostr(ADevMode^.dmPaperLength);
    finally
      GlobalUnlock(ADeviceMode);
    end;

    // 必要ないけどPrintDialogを開く
    PrintDialog1.Execute;

    // もう一度縦の長さを得る
    Printer.GetPrinter(ADevice, ADriver, APort, ADeviceMode);
    ADevMode := GlobalLock(ADeviceMode);
    try
      label4.Caption := inttostr(ADevMode^.dmPaperLength);
    finally
      GlobalUnlock(ADeviceMode);
    end;
  end;
end;

まあ、これでもいいかな?


[9526] Re4:プリンタドライバの情報をDEVMODE構造体から取得返信 削除
2016/1/9 (土) 14:50:34 Mr.XRAY
▼ takiさん,どうもです.

> 理由はわかりませんが、PrinterSetupDialogの後にPrintDialogを
> 呼び出すと用紙の長さが変わります。(正常になります。)
>
> まあ、これでもいいかな?


taki さんの書き込みがあったので,今,ちょっと考えています.
[011] のサンプルにはちょっと問題があるんです.
これは,前から分かっていることなんですが,
私は,誤字脱字の名人なので... 慎重にと思っています.


[9532] Re5:プリンタドライバの情報をDEVMODE構造体から取得返信 削除
2016/1/11 (月) 07:31:51 Mr.XRAY
> これは,前から分かっていることなんですが,
> 私は,誤字脱字の名人なので... 慎重にと思っています.


第一段階終了しました.
実際に DEVMODE の値を取得して表示する部分を別ルーチンにしました.
もうちょっとお待ちくださいませ.
taki さん用というわけではなく,利用される方皆さん用ですので (^^;


[9533] Re6:プリンタドライバの情報をDEVMODE構造体から取得返信 削除
2016/1/11 (月) 08:44:48 taki
▼ Mr.XRAYさん
 
> 第一段階終了しました.
> 実際に DEVMODE の値を取得して表示する部分を別ルーチンにしました.
> もうちょっとお待ちくださいませ.
> taki さん用というわけではなく,利用される方皆さん用ですので (^^;


ありがとうございます。(T_T)/


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82