イメージコントロールのキャッシュでしょうか
お世話になっております。
Enterprise Studio3.1の環境でPNGファイルを表示する際、キャッシュなのか前の画像が標示されます。
ダイナミックコントロールにて渡されたパラメータによって式に代入し表示するファイルを変えております。
画像を表示するプログラムがあり、単体でのテストでは問題なく表示できます。
呼び出しプログラムから画像1、画像2など予め用意された画像のどれかを選択表示する場合は問題なく表示されます。
呼び出しプログラムで、選択により作成された画像を表示する場合、作成される前の画像が出てまいります。
リファレンスガイドには、
|
との記述があり、キャッシュかとも思ったのですが、呼び出しプログラムと画像表示プラグラムは別プログラムでもちろんタスクも違うし、タスク常駐も使用しておりませんのでクリアされていると思うのです。(キャッシュクリアの方法もわかりませんが)
しかも、閉じる開くを繰り返して画像表示プログラムを19回ほど開き直すと正しく表示されます。
呼び出しプログラムで作成された画像を画像表示プログラムで表示させる方法、何が原因でしょうか?
ご存知の方教えてくださいませ。
-
ISHIJIMA様早々のコメントありがとうございます。
一つ一つ試しておりましたが、後々の為に残しておきます。
・作成してから表示するまでの時間は関係ないようです。
作成し、30秒、開いても前のまま、30秒、前のまま、を繰り返して、やはり何十回か試さないと正しく表示されませんでした。・.NETのpictureBox、まだ試行段階で、実現には至っておりません。
・imageReload関数、3.1環境にはないのでしょうか?リファレンスで検索しても見つけられませんでした。
以上、途中ではありますが、報告でございます。
-
お付き合い頂きありがとうございます。
.NETにて画像表示に至りましたが、一度画像開きますと、呼び出しプログラムに戻っても画像ファイルを掴んでいるようで、Magic Xpa Runtime engineによってロックされ画像ファイルの再作成が出来なくなりました。
元投稿段階では、画像ファイルはロックされていなかったので、作成自体は出来たのですが、今回は実行エンジンを終了するまで掴んで離さないようです。
ですので、「1.イメージ表示用にPictureBoxを配置」はできました。
「2.イメージファイルを置換」はできません。度々申し訳ありません。
-
ISHIJIMA様何度もお付き合いいただきありがとうございます。
当方、.NETの知識を持ち合わせておりませんで、回避策にて対処することしました。
以下概略を残しておきます。
画像ファイルをイメージコントロールで貼り付けておりますが、画像ファイルの中身は都度変更されるものの、表示方法は変わらないので同一ファイル名にて行っておりました。
ですので、画像表示プログラム上では同一のファイル名を指定しての表示なのですが、それを呼び出すプログラムにて画像の中身を作成変更してから、表示させていたのです。同一ファイル名だから更新されないという不具合を呼んでいました。(エクスプローラー上では更新されているのに)
それらを、作成回数をカウントして、作成する度にファイル名を変えて、ファイル名を画像表示プログラムへ渡して表示するようにしました。
今のところ一桁のカウント(10回ループ)だけでも画像が更新されないという事は無いようです。
ご協力ありがとうございました。
サインインしてコメントを残してください。
コメント
3件のコメント