Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Abbruch einer procedure
abi - Do 15.04.04 11:00
Titel: Abbruch einer procedure
Hallo
ich habe einen Testlauf in dem ich Warte Schleifen eingefügt habe.
Jetzt möchte ich das ich während die Warte Schleife läuft, denn Testlauf abbrechen kann.
Ich hoffe ihr wisst was ich meine.
Hier meine Warte Schleife
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure Wait(time: word; bstop1: Boolean); var start: integer; begin start := GetTickCount; while GetTickcount-start <= time do begin Application.ProcessMessages; if bstop1 = True then begin end else begin end; end; end; |
Moderiert von
Peter Lustig (15.04.2004, 11:03): Verschoben und Code- durch Delphi-Tags ersetzt
Udontknow - Do 15.04.04 11:21
Das ist eine simple Prozedur, du beabsichtigst aber mit dem Close wahrscheinlich, das irgendein Formular geschlossen werden soll.
Lösung a) Anstatt "Close" "Formularname.Close;" schreiben.
Lösung b) Aus der Prozedur eine Methode des Formulars machen (also Prozedur in der Klasse TFormularName deklarieren und dann mit "procedure TFormularName.Wait(..." implementieren.
Cu,
Udontknow
bms - Do 15.04.04 11:39
Mit Break kannst du die While Schleife abbrechen. Mit Exit kannst du die Prozedur abbrechen.
abi - Do 15.04.04 11:54
Hallo
wie ich sehe hast du mich richtig verstanden.
Jetzt wollte ich des was du mir geschrieben hast, auch mal ausprobieren. Da ich erst angefangen hab mir Delphi, hab ich mit kleinigkeiten auch ab und zu Probleme.
Versuch 1
Jetzt wollte ich wie du gesagt hast das Formular.Close machen.
Mein Testablauf startet mit einem Button dieser Button heisst AutotestClick.
Jetzt hab ich mir gedacht ich tippe AutotestClick.Close ein, aber des geht nicht. Es kommt eine Fehler meldung.
Versuch 2
Da dies nicht ging, dachte ich wenn ich des zur Methode mache.
Hab dies auch gemacht, hoffe ich zumindest.
Dann nimmt er des auch nicht an und denn Begriff Close habe ich auch nicht gesehen.
Kannst du mir noch mal helfen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure TAutotest1.Wait(time: word; bstop1: Boolean); var start: integer; begin start := GetTickCount; while GetTickcount-start <= time do begin Application.ProcessMessages; if bstop1 = True then begin ShowMessage('wait bstop true'); end else begin ShowMessage(' wait bstop1 False'); end; end; end; |
Danke
Moderiert von
Peter Lustig (15.04.2004, 12:15): Code- durch Delphi-Tags ersetzt
abi - Do 15.04.04 12:02
Hallo
jetzt habe ich gedacht vielleicht sollte ich des mit break, oder exit machen.
Aber des geht auch nicht.
Hier noch mal mein Code.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| procedure TAutotest1.Wait(time: word; bstop1: Boolean); var start: integer; begin start := GetTickCount; while GetTickcount-start <= time do begin Application.ProcessMessages; if bstop1 = True then begin ShowMessage('wait bstop true'); testauto.Autotest1.Exit; testauto.Autotest1.Autotest.exit; end else begin ShowMessage(' wait bstop1 False'); end; end; end; |
Moderiert von
Peter Lustig (15.04.2004, 12:15): Code- durch Delphi-Tags ersetzt
Udontknow - Do 15.04.04 12:05
Wieso verwendest denn den Namen eines Buttons? Es geht doch um das Formular, das zu schliessen ist, also musst du den Formularnamen (beispielsweise Form1) angeben. Ausserdem musst du dann tatsächlich, wie bms schon sagte, die Prozedur Wait verlassen, indem du z.B. exit aufrufst.
Gewöhne dir bitte auch an, immer die Fehlermeldungen mit anzugeben.
Ich empfehle dir ein
Grundlagentutorial [
http://www.delphi-source.de/grundlagen/sprache/] durchzuarbeiten.
PS: Das bezieht sich auf den vorletzten Beitrag.
Cu,
Udontknow
bms - Do 15.04.04 12:13
Du hättest dir vorher angucken sollen was für ein Befehl Exit ist. Exit steht für sich alleine:
abi - Do 15.04.04 12:23
Ich versuche mich zubessern
Es geht danke, gehe jetzt aus der wait procedure mit exit raus und breche danach mit break ab.
Dann noch mal danke.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!