ストリームの振る舞いが良く分らず首を傾げています。
三つのストリームがあります。
aS : データが格納してある TMemoryStream
bS : 特殊なメソッドを持ったストリーム
(具体的には Zlib の解凍ストリームです)
cS : 変換されたデータを格納する TMemoryStream
最初にデータを aS に格納し、それを bS.Method(aS); によって変換し、それを cS で受け取る、という流れです。首尾良く PNG 画像が TImage 上に表示されました。
それは良いのですが、TMemoryStream を二つも使うのが勿体無い気がします。そこで aS を再使用することにして Free, Create を行ってから cS の代用に宛てました。しかし実行時エラーが出てしまいました。何故なのでしょう。
どなたかお教え下さい。
「コーディングにミスがある」のが濃厚ですが、もったいないと言っても
わずか4バイト。2個の変数に分けてもバチはあたらないかも。
回答有難う御座いました。
ただ、回答を戴いておきながら申し訳ないのですが、実は私の質問自体が意味を成していませんでした。
"bS.Method(aS); によって変換し" と書きましたのが私の粗忽で、bS はストリームからデータを読み込みながら別のストリームに変換データを流し込むというストリームでした。ですから、入り口=出口とすればエラーが出るのは当たり前です。
お騒がせ致しました。
ツイート | ![]() |