仮想マシンで接続したあとプログラムを動作。遮断、再接続すると
エラーが発生することがありました。
色々調べて原因がやっとわかりました。
☆原因
・リモートデスクトップで接続すると接続側のプリンタが仮想マシン側で
利用出来るようになる。これはリモートディスクトップの設定で変更可能ですか、
この機能を毎回オンオフするのは面倒です。
・アプリでプリンタを使用すると TPrinter に値が設定されます。
接続側プリンタ情報も当然取り込まれます。
・リモートを切断しても Printer オブジェクトは書き換わりません。
・IDE を再起動しないと Printer オブジェクトは書き換わりません。
この状態で既存ソースを開くとエラーになる事があります。
☆対策
とりあえず TplSetPrinter の Createメソッドに次のコードを追加します。
if 0 < Printer.Printers.Count then // A 17/07/25
Printer.Refresh; // A 17/07/25
☆未解決の問題
・仮想マシンの接続、切断を関知して Printer オブジェクトを書き換えたい
というわけで誰かお知恵を貸してください。
|