如何動態新增comboBox的items |
|
sanwin
一般會員 發表:20 回覆:60 積分:16 註冊:2002-06-03 發送簡訊給我 |
請問站長跟各位高手,要如何動態新增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 發送簡訊給我 |
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
引言: 請問站長跟各位高手,要如何動態新增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 發送簡訊給我 |
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
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有更多一點了解
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |