Autor Beitrag
angel324
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 14.09.06 23:24 
Hallo,
ich habe ein Problem.
Ich möchte das mein Programm ca. 250ms in Warteschleife geht in dabei eine Aktion ausführt.
Ausführt ist nicht das richtige Wort. Es soll zb. 250ms ein Label angezeigt werden. Die Prozedure soll solange warten bis die 250ms vorbei sind und danach weiter arbeiten.
Label ausblenden und weiter rechnen oder so.

Ich habe es bisher mit "sleep" gemacht das gfällt mir aber nicht ,weil dann das ganze Programm nicht reagiert.

Könnt Ihr mir helfen wie man das noch machen kann?


Ich DANKE euch...

Gruß

Mathias
Phantom1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 390



BeitragVerfasst: Do 14.09.06 23:35 
Probiere es mal hiermit:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure delay(msec: Cardinal); 
var start: Cardinal; 
begin 
  start:=gettickcount; 
  while gettickcount - start < msec do
    application.processmessages; 
end;
angel324
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 15.09.06 08:46 
Hallo,
danke erstmal für die Antwort.
Kannst du mir auch noch sagen was dieses application.processmessages macht bzw. funtioniert?


Gruß
passiv
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 270

WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
BeitragVerfasst: Fr 15.09.06 09:05 
die lässt das Programm weiterarbeiten
steht in der Hilfe von Delphi :wink:

_________________
Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Fr 15.09.06 09:11 
Genauer gesagt, wird die Message Queue abgearbeitet (was der Titel der Methode schon sagt).

Sprich, obwohl Dein Programm (der Mainthread) an dieser Stelle nicht die Kontrolle an die VCL (GUI) abgeben würde - mit diesem Befehl tut er das.

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
angel324
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 15.09.06 13:02 
Ich danke euch erstmla werde das mal testen und dann berichten...

Mathias