2012-10-30 76 views
0

我正在開發一個mp3發送程序。我使用一個列表框來顯示一個簡單的mp3文件列表(1.mp3,2.mp3,3.mp3等)和一個連接(ip adress1,ip adress2)所在的清單框。我想知道如何將checklistbox選項保存爲(鏈接)?例如,如果我想發送1.mp3到ipadress1和ipadress2,然後2.mp3,3.mp3只用於ipadress2等..)我想使用「文件發送」按鈕將其保存到一些txt文件。任何想法?T hanks的答案!Delphi Listbox + CheckListbox

procedure TForm1.ListBox1Click(Sender: TObject); 
var 
Item : TStringList; 
I: Integer; 
begin 
if ListBox1.ItemIndex = -1 then 
    Exit ; 
if Assigned(ListBox1.Items.Objects[ListBox1.ItemIndex]) then 
    Item := ListBox1.Items.Objects[ListBox1.ItemIndex] as TStringList 
else 
begin 
    Item := TStringList.Create ; 
    ListBox1.Items.Objects[ListBox1.ItemIndex] := Item; 
end ; 
for I := 0 to CheckListBox1.Items.Count - 1 do 
CheckListBox1.Checked[I] := False; 
for I := 0 to Item.Count - 1 do 
CheckListBox1.Checked[CheckListBox1.Items.IndexOf(Item[I])] := True; 
end; 

procedure TForm1.CheckListBox1ClickCheck(Sender: TObject); 
var 
Item : TStringList; 
I : Integer; 
begin 
if ListBox1.ItemIndex = -1 then 
begin 
    ShowMessage('Select the mp3 first!'); 
    Exit ; 
    end ; 
if Assigned(ListBox1.Items.Objects[ListBox1.ItemIndex]) then 
Item := ListBox1.Items.Objects[ListBox1.ItemIndex] as TStringList 
else 
begin 
    Item := TStringList.Create; 
    ListBox1.Items.Objects[ListBox1.ItemIndex] := Item; 
end; 
Item.Clear; 
for I := 0 to CheckListBox1.Items.Count - 1 do 
if CheckListBox1.Checked[I] then 
    Item.Add(CheckListBox1.Items[I]); 
end; 
+0

如果您需要我們的幫助,請格式化您的代碼示例以使其可讀。 –

+0

也許你可以合併兩個箱子放進同一個TreeView控件,然後保存/恢復它到像XML或JSON –

回答

1

您可以將它保存到ini文件中。我認爲它符合你的要求。

使用MP3文件名作爲節的名稱,IP作爲名稱=值對

[1.mp3] 
ip1=1 
ip2=1 

[2.mp3] 
ip2=1 
ip4=1 
+0

樹我想用這些保存的文本(與連接IP名稱)的另一個文件 – Steve88

+0

後加載@ steve88所以,你會複製INI從舊文件到新文件部分 –

2

如果你有一些額外的選項,你可以使用一個XML文件。 您可以根據需要添加屬性。

<Body> 
    <F1.mp3 ipaddress1="True" ipaddress2="False"/> 
    <F2.mp3 ipaddress1="False" ipaddress2="True"/> 
</Body> 
+0

我知道,但我想知道按鈕單擊事件。我如何添加mp3文件名和他們的包含IP地址到文本文件? 1文件和他們的地址1.txt,第二個文件和他們選擇的地址2nd.txt等 – Steve88