全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1856
推到 Plurk!
推到 Facebook!

儲存(WriteComponent)/載入(ReadComponent)很多Component問題

答題得分者是:speedup
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-12 16:27:52 IP:202.39.xxx.xxx 未訂閱
大家好, 小弟在一個 TPanel 上有很多個可視元件, 用如下的方法儲存:
var
  i: integer;
  ms: TMemoryStream;
begin
  ms := TMemoryStream.Create;
  try
    for i := 0 to Panel1.ControlCount - 1 do
    begin
      ms.WriteComponent(Panel1.Controls[i]);
      ms.Position := 0;
      ms.SaveToFile('c:\test\'   IntToStr(i));
      ms.Clear;
    end;
  finally
    ms.Free;
  end;
end;
小弟的問題是要怎樣再把這些 Controls 讀回來載入呢? 小弟是把上述的方式用 ObjectBinayToText 轉成 dfm 的方式儲存 再用 c:\test 目錄下有幾個檔判斷有幾個 Controls 再讀檔案裡的第一行(例 Object Image1: TImage)來取得 ClassName 再用 GetClass 的方式取得 Class 最後用 c := TControlClass(AClass).Create(Self); 的方式來 Create 請教大家,有沒有比較好的方式呢? 謝謝大家! -- 西瓜生食能解渴生津、利尿、降血壓,有「天生白虎湯」之稱。 發表人 - hagar 於 2004/07/12 16:35:11
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-12 16:46:17 IP:210.65.xxx.xxx 未訂閱
Hi hagar 版大,    試試這一篇 Mickey 版大的精采解法 http://delphi.ktop.com.tw/topic.php?topic_id=50270 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-12 17:08:33 IP:202.39.xxx.xxx 未訂閱
感謝 Fishman 版大!  小弟的狀況跟 > -- 西瓜生食能解渴生津、利尿、降血壓,有「天生白虎湯」之稱。
peipei36
一般會員


發表:8
回覆:51
積分:16
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-14 12:33:56 IP:211.79.xxx.xxx 未訂閱
在想如果嫌一個元件一檔太麻煩 也許可以把 .pas 轉換為 .xml 格式存檔 讀出時解析應該能解決 classtype 問題.. ...吧~    不過.. 若要存圖片又要速度不慢.. 不知需怎弄~ 
speedup
資深會員


發表:19
回覆:259
積分:280
註冊:2003-07-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-14 16:06:08 IP:210.243.xxx.xxx 未訂閱
粉簡單 WriteComponent會把子Component寫入 因此在執行之前你只要把元件的Owner由Form改成Panel即可  
  for i := 0 to Panel1.ControlCount-1 do
  begin
    RemoveComponent(Panel1.Controls[i]);
    Panel1.InsertComponent(Panel1.Controls[i]);
  end;
 
混心雜欲 棄修身~唉
------
唉~
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-07-14 18:30:19 IP:202.39.xxx.xxx 未訂閱
感謝 speedup 兄! 一語道破! 以前沒仔細試,一直以為只有 TForm 的 WriteComponent 才可把 ChildControl 也存入 現在知道怎麼做了!  -- 向 src="http://www.sweetbaby.net/~hagar/good.bmp">
系統時間:2024-05-17 16:49:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!