2012-10-29 58 views
-1

我有一個默認情況下3項的組合框,我想保存的項目是這樣的:保存ComboBox項3,4德爾福

Item1 //don't save 
Item2 //Don't save 
Items3 //save 
//save all futur items added 

爲什麼我的代碼,它不工作?

if Combobox1.ItemIndex > 2 then // i used 2 for test and it's no work 
    Combobox1.Items.SaveToFile('util.conf'); 
end; 

如果我刪除如果Combobox1.ItemIndex> 2,那麼所有項目都保存...

如何解決這個問題呢?

+0

可能因爲ItemIndex不是> 2.「SaveToFile」將保存所有項目,無論您的'if'語句只會確定'SaveToFile'語句是否會運行。 –

回答

5

將項目複製到臨時列表中,然後刪除您要從該臨時列表中刪除的任何一個。然後保存它。例如,這段代碼將從列表中移除前兩個元素。

TempList := TStringList.Create; 
try 
    TempList.Assign(ComboBox1.Items); 
    if TempList.Count>0 then 
    TempList.Delete(0); 
    if TempList.Count>0 then 
    TempList.Delete(0); 
    TempList.SaveToFile('util.conf'); 
finally 
    TempList.Free; 
end; 

我不確定是否完全理解列表中的哪些元素需要刪除。無論如何,複製到不同列表並保存的基本概念幾乎肯定是您需要的。你一定能弄清楚哪些元素需要刪除。

+0

謝謝你的回覆,所以這是沒有用的,因爲所有的項目都與你的例子保存..我的代碼例如http://pastebin.com/5g26Yp2V我用2tbutton,1Tedit,1combobox和在對象檢查我添加了3項。你知道爲什麼它沒有工作? – Kate

+2

該代碼工作正常。它不保存所有項目。我做了一個更簡單的例子。我認爲你需要確保你完全理解代碼。堆棧溢出可以幫助你,但你需要了解答案,而不是盲目地粘貼它們,並尋求幫助,當他們沒有做到你想要的。試着專注於理解代碼爲什麼會這樣做。 –

+0

是的大衛,我明白你的例子,我錯誤的答案很抱歉! – Kate