Autor Beitrag
abi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 121

Windows 2000
Delphi 5
BeitragVerfasst: Do 15.04.04 11:00 
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

ausblenden 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
     //ShowMessage('wait gestartet');
  start := GetTickCount;
  while GetTickcount-start <= time do begin
    Application.ProcessMessages;
    if bstop1 = True then begin
    //ShowMessage('wait bstop true');
    //close;  //kann ich nicht aufrufen
    end
    else begin
    //ShowMessage(' wait bstop1 False');
    end;
  end;
end;


Moderiert von user profile iconPeter Lustig (15.04.2004, 11:03): Verschoben und Code- durch Delphi-Tags ersetzt

_________________
Die lansamste Schnecke kommt auch irgendwann an.
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 735

Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
BeitragVerfasst: Do 15.04.04 11:39 
Mit Break kannst du die While Schleife abbrechen. Mit Exit kannst du die Prozedur abbrechen.

_________________
VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >:(
abi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 121

Windows 2000
Delphi 5
BeitragVerfasst: 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.

ausblenden 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');
    //Autotest1.Autotest.Close; //close kennt  er nicht
    //TAutotest1.Autotest.      //hier gibts keinen Autotest
   // Autotest.            //hier gibts kein Close
    //close;
    end
    else begin
    ShowMessage(' wait bstop1 False');
    //Label3.Caption := 'a';
    //Memo1.Lines.Add('wait bstop1 False');

    end;
  end;
end;


Danke

Moderiert von user profile iconPeter Lustig (15.04.2004, 12:15): Code- durch Delphi-Tags ersetzt

_________________
Die lansamste Schnecke kommt auch irgendwann an.
abi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 121

Windows 2000
Delphi 5
BeitragVerfasst: 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.

ausblenden 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;      //dann wird ja des ganze Programm geschlossen
                                  //aber es soll nur die procedure Autotest abgebrochen werden
    testauto.Autotest1.Autotest.exit; //exit gibts hier nicht
    //Autotest1.Autotest.; //close kennt  er nicht
    //TAutotest1.Autotest.      //hier gibts keinen Autotest
   //Autotest.            //hier gibts kein Close
    //close;
    end
    else begin
    ShowMessage(' wait bstop1 False');
    //Label3.Caption := 'a';
    //Memo1.Lines.Add('wait bstop1 False');

    end;
  end;
end;


Moderiert von user profile iconPeter Lustig (15.04.2004, 12:15): Code- durch Delphi-Tags ersetzt

_________________
Die lansamste Schnecke kommt auch irgendwann an.
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: 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 durchzuarbeiten.

PS: Das bezieht sich auf den vorletzten Beitrag.

Cu,
Udontknow
bms
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 735

Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
BeitragVerfasst: 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:

ausblenden Delphi-Quelltext
1:
Exit;					

_________________
VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >:(
abi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 121

Windows 2000
Delphi 5
BeitragVerfasst: 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.

_________________
Die lansamste Schnecke kommt auch irgendwann an.