[Delphi] Probleme mit Ausgabe in Prozedur

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von MisterM, 27. September 2008 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 27. September 2008
    Probleme mit Ausgabe in Prozedur

    Hey,
    ich hab ein Programm geschrieben, dass mit nem FTP-Server verbindet usw.
    Ich wollte, dass das Programm mir immer anzeigt, was es grade tut und das in einer Statusbar.
    So siehts ungefähr aus:
    Code:
    procedure TForm1.Button7Click(Sender: TObject);
    begin
     StatusBar1.Panels.Items[0].Text:='Start';
     Try
     ...
     StatusBar1.Panels.Items[0].Text:='Done';
     Except
     StatusBar1.Panels.Items[0].Text:='Failed';
     end;
     ...
     ........
    end;
    Jetzt sollte das Programm also als erstes in die StatusBar 'Start' schreiben dann mit dem FTP-Server verbinden usw. und dann in die StatusBar 'Done' schreiben, oder eben 'Failed'...
    Das einzige was aber in der StatusBar erscheint ist 'Done' ganz am Ende.Kann mir jemand sagen, warum 'Start' nicht ausgegeben wird? (Bevor die Frage aufkommt:Ja die Zeit zwischen den beiden Ausgaben ist lang genug um 'Start' zu sehen)

    Wäre echt nett, wenn mir jemand helfen könnte

    MisterM
     
  2. 28. September 2008
    AW: Probleme mit Ausgabe in Prozedur

    Bei dem Aufruf von Benutzerdefinierten Ereignissen werden die Grafischen
    Oberflächen nicht aktualisiert (neu gezeichnet), erst nach dem die Funktion/Prozedur
    beendet ist werden wieder Zeichenereignisse bearbeitet.....

    Wenn du möchtest das, die Effekte direkt sichtbar sind musst du das entsprechende
    Element neu zeichnen nach dem sich die Parameter ändern, müsste mit "Repaint" gehen
    bin mir aber nicht sicher.....

    Ich empfehle aber die Funktion "Application.ProcessMessages" nach jedem ändern der
    Eigenschaften aufzurufen, dadurch werden alle noch zu bearbeitenden Ereignisse bearbeitet,
    dabei ist zu beachten, dass auch Klick Ereignisse usw. neu Aufgerufen werden deswegen
    sollte sicher gestellt werden das diese nicht ein zweites mahl Aufgerufen werden, während
    noch eine Funktion "offen" ist.

    Mfg Rushh0ur
     
  3. 28. September 2008
    AW: Probleme mit Ausgabe in Prozedur

    Ich nehm in der Regel auch immer Application.ProcessMessages. Aber wenns schnell gehen muss (weil ProcessMessages ebend alle Dinge bearbeitet und nicht nur das was du haben willst, was dann bei vielen Komponenten länger dauert) kannst du auch StatusBar1.Update benutzen
     
  4. 28. September 2008
    AW: Probleme mit Ausgabe in Prozedur

    Danke für die schnelle Antwort, BW ist selbstverständlich
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.