ListBox1.Items[?] - Pomoc :)

lasek_99

Użytkownik
Dołączył
Grudzień 18, 2007
Posty
152
Wiec tak:
Program wyszukuje mi pliki na dyskach i wpisuje adresy do ListBox1 i potem wysyla na email pliki. Ale nie mam pojęcia ile tych plików będzie
smile.gif

To napisałem tak:
Kod:
idSMTP1.AuthenticationType:=atLogin;

TIdAttachment.Create(IdMessage1.MessageParts, ListBox1.Items[1]); // załącznik :)

TIdAttachment.Create(IdMessage1.MessageParts, ListBox1.Items[2]); //załącznik :)

IdSMTP1.Connect; // łączy się

I w przypadku kiedy jest jeden plik to wyświetla sie adres w ListBox1.Items[1], gdy 2 pliki to jeden adres do pliku w ListBox1.Items[1], a 2 w ListBox1.Items[2]. Ale nadal pozostaje w programie kod do załącznika 2 :/ I gdy nie ma 2 pliku, wyskakuje błąd. A jak zrobic, że w przypadku kiedy nie ma nastepego pliku, adresu w ListBox1.Items[2], żeby poprostu
program ignorowal ten kod:
Kod:
TIdAttachment.Create(IdMessage1.MessageParts, ListBox1.Items[2]); //załącznik :)
??
 

mar_je

Użytkownik
Dołączył
Kwiecień 19, 2007
Posty
74
Do "Var" dodaj np "x:integer;" a potem Pęęęętla:
Kod:
for x:=0 to listbox1.items.sount-1 do begin

TIdAttachment.Create(IdMessage1.MessageParts, ListBox1.Items[1].caption); 

//lub "ListBox1.Items[1]" bez ".caption"

end;
 

l4f

Użytkownik
Dołączył
Wrzesień 16, 2007
Posty
160
lasek_99, a jak nie wiesz ile będzie elementów to możesz skorzystać z tablicy dynamicznej.
 

lasek_99

Użytkownik
Dołączył
Grudzień 18, 2007
Posty
152
Originally posted by mar_je
Do "Var" dodaj np "x:integer;" a potem Pęęęętla:
Kod:
for x:=0 to listbox1.items.sount-1 do begin

TIdAttachment.Create(IdMessage1.MessageParts, ListBox1.Items[1].caption); 

//lub "ListBox1.Items[1]" bez ".caption"

end;

Wiec ma to wyglądac mniej wiecej tak??:
Kod:
idSMTP1.AuthenticationType:=atLogin;

for x:=0 to listbox1.items.count-1 do begin

TIdAttachment.Create(IdMessage1.MessageParts, ListBox1.Items[1]; // podaj miejsce załącznika :)

IdSMTP1.Connect; // łączy się
Tylko jest błąd po
Kod:
ListBox1.Items[1];|
 

mar_je

Użytkownik
Dołączył
Kwiecień 19, 2007
Posty
74
Kod:
idSMTP1.AuthenticationType:=atLogin;

for x:=0 to listbox1.items.count-1 do begin

TIdAttachment.Create(IdMessage1.MessageParts, ListBox1.Items[x]; // podaj miejsce załącznika :)

end;

IdSMTP1.Connect; // łączy się

Tak to musi wyglądać. Następnym razem polecam poczytać o pętlach: link
 
Do góry Bottom