掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
memorystreamを文字列として変数等に入れたい (ID:152079)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>ListBox1とStringGrid1があったとしてWriteComponentとそのテキスト化を行えば そこがなかなかいい感じなのですが Listbox1.items.addObject('aaa',TObject(1111)); の様にした場合に TObject(1111)の部分が文字列化しささらない or 参照の仕方が判っておらず、TOBJECTにしてもTreeviewのchildノードにしてもルートの値だけで参照&復元できない状態なのです。 readComponentでchildノードも復元できるという事は元のデーターには情報があるので 何か参照の仕方があるとは思うんですが、そこが把握していない感じになります。 >ストリームにこだわっていますが 自身の環境だと大半のコントロールへの代入手段がloadfileかloadstreamしかないことが多いので 例えば下記のようなものを抜き出してBMP代入する場合にストリームでないと、DLLから抜き出してsaveファイルloadファイルをコントロールだと何千個もファイル生成を繰り返す感じになり高負荷になってしまいます。 https://imgur.com/hpIQctH >画像をどう管理しているのかこれまでの情報にない気がするので想像ですが どのように管理されているかはストリーム経由でしかやりとりがないので まったく把握はしていないんですが、下記の様にストリームに入っているBMPを投げるとSGに代入されます。 なので、そこを把握せずに行うためにStreamを文字列化し復元したい感じになります。 AdvStringGrid1.CreateBitmap(1,AdvStringGrid1.RowCount-1,true,haCenter, vaAboveText).LoadFromStream(stream); これを AdvStringGrid1.savestream(sm); AdvStringGrid1.loadstream(sm); すると同じものが複製されます。 なので、可変幅のデータをストリームで管理するのはインデックスリストも必要なので余計に複雑です。というのは ストリームに複数画像を入れた場合の区切りの開始と終了地点の意味ですよね? ですがPictureContainer等だと、ストリームに入れ、ストリームから読みそのまま利用できるので そこの部分は、利用側ではなくコントロールの作成側で全部済ませてくれていると思うんですよ。 imagelistも自動で処理される感じになっていると思っているんですが、そのようなブラックボックス的な 部分もstreamを仲介すれば定義なしで使えるのではと思い、注視している感じになります。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.