Odbieranie e-maila w wątku

0

Witam,

mam kłopot przy pobieraniu e-maila w wątku. A więc mam taki oto kod:

type
  TSprawdzaj = class (TThread)
  ile:integer;
  idMessage: TidMessage;
  idPOP3: TIdPOP3;
  protected
    procedure execute; overload;
    procedure aktualizuj;
end;

procedure TSprawdzaj.execute;
var
  i: integer;
begin
FreeOnTerminate := true;
  while not terminated do
  begin
    try
      idmessage := tidmessage.Create(nil);
      idpop3 := Tidpop3.Create(nil);

      IdPOP3.Host := 'poczta.interia.pl'; //adres serweru pocztowego
      IdPOP3.Port := 110;   //numer portu hosta przeznaczony na pop3
      IdPOP3.Username := '[email protected]';     //nazwa konta pocztowego
      IdPOP3.Password := 'mojehaslo';   // haslo do konta

      IdPOP3.Connect;              // otwieramy polaczenie
      ile := IdPOP3.CheckMessages;   //CheckMessages pokazuje ile jest wiadomosci w skrzynce

        for i:=1 to ile do     // kolejno pobieramy wiadomosci
        begin
          IdPOP3.Retrieve(i,IDMessage);          //pobierz wiadomosc, widadomosc jest przysylana do konmponetu IdMessage1;

             synchronize(aktualizuj);

             IdPop3.Delete(i);     //usun wiadomosc
             IdMessage.Clear;      //wyczysc zawartosc IdMessage1

             IdPOP3.Retrieve(i,IDMessage);
             IdMessage.Clear;
        end;

      IdPOP3.Disconnect;    //rozlacz
      idpop3.Free;
      idmessage.Free;
    except
      on exception do
    end;

    sleep(10000);//10 sekund
  end;

end;

procedure TSprawdzaj.aktualizuj;
begin
             glowna.memo1.Lines.Append('=========================================================================================================================');
             glowna.memo1.Lines.Append('*   ' + idmessage.Subject);
             glowna.memo1.Lines.Append('-------------------------------------------------------------------------------------------------------------------------');
             glowna.memo1.Lines.Append('');
             glowna.memo1.Text:= glowna.memo1.Text+IDMessage.Body.Text;
             glowna.memo1.Lines.Append('*************************************************************************************************************************');
             glowna.memo1.Lines.Append('');
             glowna.memo1.Lines.Append('');
             glowna.memo1.Lines.Append('');
end;
procedure TGlowna.Button1Click(Sender: TObject);
begin
   Sprawdzaj := TSprawdzaj.Create(false);
end;

Problem w tym, ze przy kliknieciu przycisku ktory powinien uruchomic watek, program nie pobiera e-maili. Natomiast jak potrzebne instrukcje pobierania e-maili wpisałam do Button1 to emaile zostały pobrane bez problemu. Z tym ze oczywiscie na czas pobierania e-maili program "zastygł". Probowalam sledzic kod debuggerem, ale przy rozpoczynaniu watku wywala mi blad krytyczny. Co robie nie tak?

Pozdrawiam!

1

Na dzień dobry to nie:

protected
    procedure execute; overload;

tylko

protected
    procedure execute; override;
0

OMG dzieki wielkie :D

...ale siara ;p

0

Ech. Można by rzec. "Ch... z dokumentacjami, @Kaska1988 wygra taniec z gwiazdami". Po co googlować za róznicami między overload czy override? Zbędne fanaberie, jakieś nazewnictwa. Najlepiej jakby się dało odpalić roob_wsio_za_mnie.exe i po kodzeniu, nie? ;P

1

@Kaska1988, jak widzę te szlaczki w Append, to aż chce się krzyknąć - użyj StringOfChar!!! :D

0

@furious programming dzięki, użyję na pewno
@_13th_Dragon i @olesio wy z kolei uzyjcie TSocial i TRiseMyDick ;)

2

Nie ma takich komponentów, poza tym co Ty druga anna grodzka jesteś? ;) I w dodatku o homoseksualnych skłonnościach żeby Ci facet dicka "raisował". W Delphi o ile kojarzę, to raise może co najwyżej wyjątek :-)

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