Mr.XRAYさんのコンポーネントには、いつもお世話になっております。
GDI32.DLLのエラーについてですが、先日でバック中に起きたので追いかけて見ました。
procedure TCustomplPrev.SetPaperInfo;
var
WRa,HRa,Ratio1,Ratio2: Double;
begin
if FplSetPrinter=nil then begin
if Printer.Printers.Count>0 then begin
{プリンタ設定コンポがない時は現在のプリンタの情報を取得}
FplPaperWidth :=GetDeviceCaps( Printer.Handle,PHYSICALWIDTH);
FplPaperHeight :=GetDeviceCaps( Printer.Handle,PHYSICALHEIGHT);
FplPageWidth :=GetDeviceCaps( Printer.Handle,HORZRES);
FplPageHeight :=GetDeviceCaps( Printer.Handle,VERTRES);
Printer.Handle,PHYSICALWIDTHで、例外・・・・なんとかとエラーになっていました。
この後GDI32.DLLのエラーが出ていました。
何度も再現していたので、詳しく見ようと思ったら出なくなりました。
ネットワークプリンターを数台使用していると出るような気がします。
私の環境が変なのかもしれませんが、Delphi7,XPで、plSetPrinterを貼り付けているフォームを開くと何かの原因(不明)ですが、
リストで選択しても、別なプリンターを表示する不具合が起きています。
Cannon LBP3000 (オフライン)
EPSON LP-2500 (ネットワーク)
EPSON PM-870 (オフライン)
EPSON PX-V630 (オフライン)
FAX
RICOH imagio NeoC245 RPCS (ネットワーク)
RICOH IPSIO Nx86S RPCS (オフライン)
いきなりPDF
自動 EPSON LP-1000 (SV03上)
正常な時は、EPSON PX-V630をリストボックスで選択すれば、EPSON PX-V630と表示されますが、
不具合時は
EPSON PX-V630を選べばRICOH imagio NeoC245 RPCS
EPSON PM-870を選べばRICOH IPSIO Nx86S RPCS
EPSON LP-2500を選べばいきなりPDF
自動 EPSON LP-1000を選べばCannon LBP3000
この現象はが起きたらDelphiを終了しないと、現象は続きます、ためしにMr.XRAYのサンプルを
呼び出しても、現象は続きます。
この現象が起こる起こらないが、関係しているのではないでしょうか?
プリンタ番号と、ItemIndexの番号がどこかで変に変になるのでしょうか?
メモリーを多く使っている(Gridが有る)フォームを開くとなんだか起きるような?
解決していたらすみません。
|