![]() |
Prozedur für 1 Sekunde anhalten
Hi Leute ist es möglich eine Prozedur für 1 Sekunde anzuhalten undzwar nur diese ?
Also das Programm und alle anderen Prozeduren sollen weiterlaufen, nur diese eine Prozedur soll eine Sekunde angehalten werden ? danke |
Re: Prozedur für 1 Sekunde anhalten
Zitat:
mach es doch mir Delay(100); |
Re: Prozedur für 1 Sekunde anhalten
Wie wird denn diese Prozedur aufgerufen? Mit einem Timer, als eigener Thread?
Ein sleep(1000) erledigt das normalerweise.... |
Re: Prozedur für 1 Sekunde anhalten
Delay? Wusste nicht das es diese Methode gibt...
Naja, eine Prozedur anhalten, kann man logischer weise ja nicht. Aber den ausführenden Thread:
Delphi-Quellcode:
Sleep(1000);
|
Re: Prozedur für 1 Sekunde anhalten
Hi,
bei Sleep wird aber die gesamte Anwenung für eine Sekunde eingefroren. Um das zu vermeinden, muss man, wie schon gesagt, ![]() |
Re: Prozedur für 1 Sekunde anhalten
Hi,
@md_mse: Zitat:
Wenn er Sleep(1000); ausführt, friert die gesamte Anwedung für 1000 Millisekunden bzw. für 1 Sekunde ein. :arrow: ![]() ![]() MfG Marc |
Re: Prozedur für 1 Sekunde anhalten
Durch dieses Delay wird aber nicht die Prozedur eingefrohren, sondern das gesamte Porgramm... Der einzige Unterschied ist, dass die Windows-Messages weiter abgearbeitet werden...
|
Re: Prozedur für 1 Sekunde anhalten
alle anderen Proceduren sollen weiterlaufen? dann wäre das einfachste die eine procedure in einen Thread auszulagern.
@md_mse: Da die windowmessages verarbeitet werden, werden auch die mausmessages verarbeitet und somit auch die buttonklickereignisse. Wenn diese ereignisse bzw. messages dann abgearbeitet sind gehts mit der ursprünglichen procedure weiter. |
Re: Prozedur für 1 Sekunde anhalten
also das mit dem delay klappt bei mir wunderbar, alle anderen prozeduren(habs mit nem timer getestet) laufen einwandfreiweiter
|
Re: Prozedur für 1 Sekunde anhalten
Zitat:
![]() Grüße Faux |
Re: Prozedur für 1 Sekunde anhalten
Abgesehen davon:
Werden Prozeduren sowieso nicht nacheinander abgearbeitet, außer, sie sind in einem anderem Thread? Also z.b.:
Delphi-Quellcode:
Bla3 wird dabei doch erst ausgeführt, wenn Bla2 fertig ist, oder?
procedure TForm1.Bla;
begin Form1.Bla2; Form1.Bla3; end; Wenn du meinst, Bla3 soll trotzdem aufgerufen werden - ohne die Verzögerung - musst beachten, dass Bla2 noch nicht fertig ist - um Bla3 laufen zu lassen muss es dann eben in einem anderm Thread stattfinden. air |
Re: Prozedur für 1 Sekunde anhalten
es muss eben nicht in einem anderen Thread stattfinden. Es kann genau so in einem Buttonklick vorkommen. Grund ist das Application.ProcessMessages die Messages abarbeitet und somit auch die anderen Buttonklicks ausführt.
|
Re: Prozedur für 1 Sekunde anhalten
Zitat:
Grüße Faux |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz