AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

procedure waten lassen

Ein Thema von Pseudemys Nelsoni · begonnen am 18. Dez 2003 · letzter Beitrag vom 19. Dez 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

procedure waten lassen

  Alt 18. Dez 2003, 01:21
hoi

wie kann ich eine prozedur warten lassen? ich möcht nicht "sleep" verwenden.
sagern wir mal meine proceduren sehen so aus:


Delphi-Quellcode:
procedure proc2;
begin
  //hier irgendetwas tuen bis 5sek um sind
end;

procedure proc1;
begin
  proc2;
  // hier gehts nach 5 sek weiter
end;
hat jemand ne idee?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: procedure waten lassen

  Alt 18. Dez 2003, 01:31
Moin Pseudemys Nelsoni,

schau doch mal in der Code Library nach Delay.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: procedure waten lassen

  Alt 18. Dez 2003, 12:15
hallo christian, danke, das beispiel von lueckie hilft mir sehr, so hatte ich das ca auch vor, habs nur mit ner while schleife versucht
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#4

Re: procedure waten lassen

  Alt 18. Dez 2003, 17:46
"Die armen Anwender"

Was ist an Sleep so schlecht?
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: procedure waten lassen

  Alt 18. Dez 2003, 17:50
Moin Neolithos,

Zitat von Neolithos:
Was ist an Sleep so schlecht?
Das es für die angegebene Zeit den Thread in dem es aufgerufen wird komplett anhält. Es werden keinerlei Messages mehr verarbeitet.
Wendet man also Sleep im Hauptprogramm an, wirkt es so, als hätte sich das Programm aufgehängt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#6

Re: procedure waten lassen

  Alt 18. Dez 2003, 17:58
Delphi-Quellcode:
procedure Wait(time: word);
var Start: Integer;
begin
  Start:=GetTickCount;
  while GetTickCount-Start <= time do
    application.ProcessMessages;
end;
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#7

Re: procedure waten lassen

  Alt 18. Dez 2003, 18:08
Stand aber nicht in der Frage!

Desweiteren ist das schlecht für die anderen Prozesse im System...

Ich würde die ganze Sache so formulieren...

Delphi-Quellcode:
procedure Wait(time: word);
var Start: Integer;
begin
  Start:=GetTickCount;
  while GetTickCount-Start <= time do
    begin
      application.ProcessMessages;
      Sleep(0); // Terminiere Zeitscheibe bzw. Sleep(1); um Prozessor zu entlasten
    end;
end;
..., wenn es nicht exakt sein soll!


Ganz ideal wäre ein System-Timer via MsgWaitForMultipleObjects (was hunderstel genau funktioniert).
Falls interesse besteht -> muss ich mir den Code noch ausdenken
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#8

Re: procedure waten lassen

  Alt 19. Dez 2003, 02:22
hallo,

ich habe lueckie's beispiel benutzt:

Delphi-Quellcode:
procedure delay(msec:longint);
var
  start,stop:longint;
begin
  start := gettickcount;
  repeat
  stop := gettickcount;
  application.processmessages;
  until (stop - start ) >= msec;
end;
jetzt gibts ein problem und zwar sorgt das "appliaction.processmessages dafür das andere sachen verarbeitet werden können...ein beispiel ist dieses hier:

Zitat:
[19:12:03] (02:13:08) <silent> !quiz start
[19:12:03] (02:13:10) <ism> ¤¤¤ Lade Fragen...
[19:12:03] (02:13:10) <ism> ¤¤¤ Fertig! - 4 Fragen geladen
[19:12:03] (02:13:10) <ism> ¤¤¤ Quiz beginnt
[19:12:03] (02:13:14) <ism> ¤¤¤ i?
[19:12:03] (02:13:37) <asdf> ...
[19:12:03] (02:13:46) <silent> muss was testen..
[19:12:03] (02:13:57) <asdf> !team satan
[19:12:03] (02:14:16) <ism> ¤¤¤ Zeit abgelaufen. Die richtige antwort wäre "s" gewesen
[19:12:03] (02:14:16) <silent> s
[19:12:03] (02:14:19) <ism> ¤¤¤ silent hat die Frage "i?" richtig, mit "s" beantwortet
[19:12:03] (02:14:19) <ism> ¤¤¤ silent hat jetzt 1 richtige Antwort(en)

wenn die frage aufgelöst wird tritt die pause ein, die 5 sekunden dauert bis zur nächsten frage. Wenn ich während diesen 5 sekunden das ergebnis (das ja schon aufgelöst wurde) eingebe, krieg ich es als richtige antwort angezeigt....

wie kann ich das nun angehen? mein prog soll die anderen prozeduren währen der pause nicht weiter verarbeiten...dennoch soll es aber ach nicht "abstürzen"...was kann man da machen?

btw: die procedure die die antworten prüft ist eine andere als die, in der die pause aufgerufen wird, diese sollte nicht verarbeitet werden
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#9

Re: procedure waten lassen

  Alt 19. Dez 2003, 11:48
Disable die Frage doch!

ctrl.Enabled := false
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#10

Re: procedure waten lassen

  Alt 19. Dez 2003, 12:43
JaJa Prozeduren koennen nicht schwimmen. Fuehr sie also nicht in zu tiefes Wasser
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz