掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TIdFTPServerで通信するには? (ID:3973)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
VSream云々のところは忘れてください。 試してみたら、OnStoreFilesイベントで返したTStreamは、使い終わると破棄していました。 BeforeDestructionでOKです。 SetPointerを使わずに、保存場所はそのまま自分自身(TGetStream)でOKです。 つまり、継承したら、BeforeDestructionだけオーバーライドします。 そして、SetPointerを使わずに、そのままTMemoryStreamが用意したバッファに保存させます。 BeforeDestructionで、自分自身のデータを別のところに待避します。 例えば、Form1に MemStream: TMemoryStream を用意し、オブジェクトを作成しておいてから、 procedure TGetStream.BeforeDestruction; begin Form1.MemStream.LoadFromStream(Self); inherited BeforeDestruction; end; とすれば、TGetStreamが破棄されるときにMemStreamに保存されます。 # この場合は、スレッドのことを考えていませんので、複数同時接続には対応していません Indyでは、各接続を、スレッドとして扱っています。 同時に複数のスレッドができることもあるので、このあたりは同期させるようにした方がよいです。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.