Thema: Delphi Timer (Amateuerfrage)

Einzelnen Beitrag anzeigen

neus

Registriert seit: 15. Apr 2007
16 Beiträge
 
#1

Timer (Amateuerfrage)

  Alt 16. Apr 2007, 19:31
Hi,

mir macht dieses Delphi langsam mehr Spaß als PHP und mein Grundkurs C++ =).
Je mehr ich probiere umso mehr Fragen kommen mir aber auf.

Jetzt stehe ich davor:
"Ich lasse ein Programm laufen, kann aber ads Formular nicht mehr verschieben." Es sieht also so aus wie als wenn das Programm abgestürtzt ist und keine Rückmeldung gibt. In meinen Beispiel wird ein Ping geschickt mit Pausen. Aber solange er die Schleife ping, kann man das Formular nicht bewegen und das sieht irgendwie doof aus.

Was kann ich da tun. Wie verwende ich in meinem Beispiel den Timer , dass er mal funktioniert ?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
        max:=100;
        i:=1;
        ProgressBar1.Max:=max;
        while i < max do
        begin
                IdIcmpClient1.Host := Form1.Edit1.Text;
                IdIcmpClient1.Ping();
                If IdIcmpClient1.ReplyStatus.BytesReceived > 0 Then

                ListBox1.Items.Add(IntToStr(i) + ' ' + IdIcmpClient1.Host+' erreichbar '+ IntToStr(IdIcmpClient1.ReplyStatus.BytesReceived))
                else
                ListBox1.Items.Add(IntToStr(i) + ' ' + IdIcmpClient1.Host+' nicht erreichbar');

                i:=i+1;
                sleep(StrToInt(Edit2.Text));
                ProgressBar1.Position:=i;
        end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
        Timer1.Enabled:=False;
        Form1.Refresh;
        Application.ProcessMessages;
        Timer1.Enabled:=True;
end;
  Mit Zitat antworten Zitat