Access Violation - nie wiem czemu

0

Cześć @LL

Poniżej zamieszczę procedurę do odbioru poczty, która ma zapisywać tematy i zawartość maili do plików...

code
var
FMsgCount: integer;
Wiad: array[0..200] of TIdMessage; //tablica wiadomosci
(...)

FMsgCount := POP.CheckMessages;
(...)

procedure TfrmMain.GetMailExecute(Sender: TObject);
var
i: integer;
temat: string;
nadawca: string;
stTemp: string;
lv: TlistItem;
begin
stTemp := StatusBar1.Panels[1].text;
ListView1.Items.Clear;
for i := 0 to FMsgCount do POP.Retrieve(i, Wiad[i]);
for i := 0 to FMsgCount do
begin
temat := (Wiad[i].Subject);
nadawca := (Wiad[i].From.Text);
lv := ListView1.Items.Add;
lv.ImageIndex := 12;
lv.SubItems.Add(temat);
lv.SubItems.Add(nadawca);
slv.SaveListViewToFile(ListView1,'lista.xxx');
Wiad[i].Body.SaveToFile((Wiad[i].Subject)+'.txt');
end;
end;[/code]

Nie wiem, dlaczego w wytłuszczonym fragmencie wyrzuca mi Acces Violation :-( [stuk] Kombinowałem pół dnia, ale nic nie przyszło mi do głowy. Kompiluje się bez problemu. Aha... we wcześniejszej procedurze program już dał POP.Connect, także jest online.
Proszę, pomóżcie.

0

zobacz moze o to buiega
nie pszie sie dwoch petl iw procce majac tylko jedna zmiienn a to wywala blad (no mi, albo i nie? : O)

for i := 0 to FMsgCount do POP.Retrieve(i, Wiad[i]);
for i := 0 to FMsgCount do

daj inna zmienna np. i2

0

Ciągle w tej samej linijce jest to Access Violation, którąkolwiek zmienną zmieniam. :-8

0

...To FMsgCount-1..

0

Teraz z kolei Access Violation przeskoczyło na to miejsce:

[code]procedure TfrmMain.GetMailExecute(Sender: TObject);
var
i: integer;
temat: string;
od: string;
stTemp: string;
lv: TlistItem;
begin
stTemp := StatusBar1.Panels[1].text;
ListView1.Items.Clear;
for i := 0 to FMsgCount - 1 do POP.Retrieve(i, Wiad[i]);
for i := 0 to FMsgCount - 1 do
begin
temat := (Wiad[i].Subject);
od := (Wiad[i].From.Text);
lv := ListView1.Items.Add;
lv.ImageIndex := 12;
lv.SubItems.Add(temat);
lv.SubItems.Add(od);
slv.SaveListViewToFile(ListView1,'lista.xxx');
Wiad[i].Body.SaveToFile((Wiad[i].Subject)+'.txt');
end;
StatusBar1.Panels[0].Text := (stTemp);
end;[/code]

Co robię źle? Dlaczego to nie chce zadziałać?[stuk]

1 użytkowników online, w tym zalogowanych: 0, gości: 1