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

如何動態新增comboBox的items

 
sanwin
一般會員


發表:20
回覆:60
積分:16
註冊:2002-06-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-06-15 10:52:56 IP:61.225.xxx.xxx 未訂閱
請問站長跟各位高手,要如何動態新增comboBox的items,我在form上放了一個edit裡面輸入的字要加入到comboBox的items裡面去,在run的時候可以加入,可是一旦關閉後,再重run的時候,就又都不見了,我是用 form1.combobox1.items.append(form1.edit1.text);來加入itmes, 請問這樣的語法可以在run的時候加入,可是關閉後重開就又全不見了, 要如何寫才能動態加入且會寫入items內的Tstrings,請指點一下,謝謝!
------
我是剛入門的子弟,請大家多多指教!
天外來客
初階會員


發表:22
回覆:199
積分:44
註冊:2001-11-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-06-15 21:49:07 IP:211.74.xxx.xxx 未訂閱
1.可先產生TStrings 2.在Add時 加入一個item 3.結束時儲存此list為檔案 4.在下次進入時load此檔案 5.combobox1.items := alist; 試試看
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-06-17 09:07:25 IP:163.29.xxx.xxx 未訂閱
引言: 請問站長跟各位高手,要如何動態新增comboBox的items,我在form上放了一個edit裡面輸入的字要加入到comboBox的items裡面去,在run的時候可以加入,可是一旦關閉後,再重run的時候,就又都不見了,我是用 form1.combobox1.items.append(form1.edit1.text);來加入itmes, 請問這樣的語法可以在run的時候加入,可是關閉後重開就又全不見了, 要如何寫才能動態加入且會寫入items內的Tstrings,請指點一下,謝謝!
以下方法可將Dfm在RunTiem之改變重新Save,故你在Combobox上之add可寫入dfm中
procedure TForm1.Button1Click(Sender: TObject);
var s:TFileStream;
begin
  s:=TFileStream.Create('unit1.dfm',fmOpenWrite);
  s.WriteDescendentRes(classname, self, nil);
  s.free;
end;    
[NOTE]重寫dfm後,當然須重新compiler才可,故自己用來create item可用,若為單獨之執行檔則無用 dfm檔其實為Window Resource,會整個合併到執行檔中,故單一執行檔也可找到特定之dfm進行修改(i.e)提供客戶自行修改Form, 不過會造成Version管理問題,最好避免. 合理之方法應存為外部檔 combobox1.items.savetofile(filename); combobox1.items.LoadFormfile(filename);
sanwin
一般會員


發表:20
回覆:60
積分:16
註冊:2002-06-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-06-17 10:47:42 IP:211.74.xxx.xxx 未訂閱
你是說,如果我已經把程式complier成.exe的執行檔,在run程式的時候,新增itmes的話,它就會自動寫入.exe檔裡面嗎? 我是剛入門的子弟,請大家多多指教!
------
我是剛入門的子弟,請大家多多指教!
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-06-18 08:30:02 IP:163.29.xxx.xxx 未訂閱
1. 前所逑之方法是寫入DFM檔, 故單獨之執行檔無用,你可以先試試 你增加items時其實就是更改了dfm, 故重存dfm 2. 若要提供使用者新增item, 且保存使用者新增之item,則用一個額外之檔儲存較理想. 例如存成與執行檔同名之.dat如下 filename:=ChangeFileExt(paramstr(0), '.dat'); [note]paramstr(0)為執行檔檔名, changefileext將延伸檔名改為.dat combobox1.items.savetofile(filename); //直接將內容存入該檔 //如此程式結束就有一 xxx.dat之檔 combobox1.items.LoadFormfile(filename); //由檔案載入內容 3. dfm在Exe中, 可以直接修改,不過須要對Resource及EXE有更多一點了解
系統時間:2017-11-24 2:19:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!