witam,jeszcze troche Wam po truje z tym Pop-em. Napisałem procedurkę do odbierania poczty z jednego konta działającą w wątku,jeśli ją uruchamiam wszystko jest ok,gdy zamykam program jest ok. Ale napisałem podobną ale dla wielu kont i wyskakują mi błędy,oto kod z błędami
begin
nam:=0;
FreeOnTerminate := True;
for i:=0 to Form_Mail.Konta.Items.Count-1 do
if Form_Mail.Konta.Items[i].HasChildren then
Form_Mail.memo4.Lines.Add(Form_Mail.Konta.Items[i].Text);
for i:=0 to Form_Mail.Memo4.Lines.Count-1 do
BEGIN
Registry := TRegistry.Create(KEY_READ);
try
Registry.CloseKey;
Registry.RootKey:=HKEY_CURRENT_USER;
Registry.OpenKey(Klucz+'\'+Form_Mail.Memo4.Lines.Strings[i], False);
Form_Mail.sp := Registry.ReadString('ServerNamePop');
Form_Mail.pp := Registry.ReadString('ServerPortPop');
Form_Mail.lp := Registry.ReadString('ServerUserPop');
Form_Mail.hp := Registry.ReadString('ServerPasswordPop');
finally
Registry.Free;
end;
with Form_Mail do
Begin
// StatusBar.Panels.Items[1].Text:=Memo4.Lines.Strings[i]+' - Łączenie' ;
if POP.Connected then
POP.Disconnect;
POP.Host := Form_Mail.sp;
POP.Port := strtoint(Form_Mail.pp);
POP.Username := Form_Mail.lp;
POP.Password := Form_Mail.hp;
try
POP.Connect;
except
//StatusBar.Panels.Items[1].Text:=Memo4.Lines.Strings[i]+' - Błąd' ;
end;
FMsgCount := POP.CheckMessages;
FMailBoxSize := POP.RetrieveMailBoxSize div 1024;
Mail_P.Max:=FMsgCount;
Mail_P.Position:=0;
if FMsgCount > 0 then
begin
if Form_Main.JestPoczta=False then
Begin
// Procedury.Mow('Masz nową wiadomość');
Form_Main.Timer4.Enabled:=True;
End;
for intIndex := 1 to FMsgCount do
begin
Msg.Clear;
while FileExists(Form_Main.Sciezka+'Poczta\'+Form_Mail.Memo4.Lines.Strings[i]+'\Skrzynka odbiorcza\'+inttostr(Nam)+'.kma') do inc(Nam);
if Pop.Retrieve(intIndex, Msg) then
Msg.SaveToFile(Form_Main.Sciezka+'Poczta\'+Form_Mail.Memo4.Lines.Strings[i]+'\Skrzynka odbiorcza\'+inttostr(Nam)+'.kma');
itm := List2.Items.Add;
itm.Caption := Msg.Subject;
itm.SubItems.Add(Msg.From.Text);
itm.SubItems.Add(DateToStr(Msg.Date));
itm.SubItems.Add(IntToStr( POP.RetrieveMsgSize(intIndex)));
itm.SubItems.Add(inttostr(Nam)+'.kma');
itm.SubItems.Add(Memo4.Lines.Strings[i]);
Mail_P.Position:=intIndex;
// StatusBar.Panels.Items[1].Text := format('Nowe wiadomosci: '+IntToStr(FMsgCount)+'.Łączny rozmiar: %d KB ', [FMailBoxSize]);
end; // for i to message count
end // if msg>0
else
begin
// StatusBar.Panels.Items[1].Text:='Brak wiadomosci';
end;
// EXCEPT
// StatusBar.Panels.Items[1].Text:='Błąd ...';
// END;
Form_Main.JestPoczta:=False;
End; // with form mail do
END; // for i to memo4.lines.count
PopAll.Terminate;
if terminated then
Form_mail.Label18.caption:='Watki przerwane';
end;
zaraz po uruchomieniu wyskakują mi błędy,może związane z memo "canvas does not allow drawing" i wszystko się wykrzacza , albo gdy jakoś to ominę to potem "nieprawidłowe dojście okna , system error 1400 " - chyba oznacza nieprawidłowy uchwyt okna
czy ktoś może tu pomóć ? co może to powodować