Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

Lazarus / Delphi - Problem

39 - 31
Champion (offline)

Dabei seit 07.2009
7448 Beiträge
Geschrieben am: 26.11.2009 um 17:21 Uhr

Hi Leute!

Ich hab gerade ein Problem mit Lazarus (Das ist die Kostenlose Version von Delphi Pro)

Weiß einer von euch, wie man "wait" im zusammenhang mit dem Timer benutzt?

Also ich meine, dass er einen Befehl mach, WARTET, weiter macht.

Ich weiß, dass es geht, aber ich hab kein Plan wie.

Danke im Vorraus

PS: Bitte keine Überflüssigen Kommentare!

Achtung: Kraftpakets Beiträge sind, egal mit wessen Zustimmung, grundsätzlich unügltig!

Happy_Hippo - 35
Anfänger (offline)

Dabei seit 10.2007
19 Beiträge

Geschrieben am: 26.11.2009 um 17:28 Uhr
Zuletzt editiert am: 26.11.2009 um 17:29 Uhr

Muss es mit Timer sein??

Ansonsten würd ichs mit der prozedur machen:

sleep(integer in ms);

oder

procedure Delay(Milliseconds: Integer);
var
Tick: DWord;
Event: THandle;
begin
Event := CreateEvent(nil, False, False, nil);
try
Tick := GetTickCount + DWord(Milliseconds);
while (Milliseconds > 0) and
(MsgWaitForMultipleObjects(1, Event, False, Milliseconds, QS_ALLINPUT) <> WAIT_TIMEOUT) do
begin
Application.ProcessMessages;
if Application.Terminated then Exit;
Milliseconds := Tick - GetTickcount;
end;
finally
CloseHandle(Event);
end;
end;

...

39 - 31
Champion (offline)

Dabei seit 07.2009
7448 Beiträge
Geschrieben am: 26.11.2009 um 17:33 Uhr

Zitat von Happy_Hippo:

Muss es mit Timer sein??

Ansonsten würd ichs mit der prozedur machen:

sleep(integer in ms);

oder

procedure Delay(Milliseconds: Integer);
var
Tick: DWord;
Event: THandle;
begin
Event := CreateEvent(nil, False, False, nil);
try
Tick := GetTickCount + DWord(Milliseconds);
while (Milliseconds > 0) and
(MsgWaitForMultipleObjects(1, Event, False, Milliseconds, QS_ALLINPUT) <> WAIT_TIMEOUT) do
begin
Application.ProcessMessages;
if Application.Terminated then Exit;
Milliseconds := Tick - GetTickcount;
end;
finally
CloseHandle(Event);
end;
end;


OK, und das kommt jetzt zwischen 1. Befehl und 2. Befehl?

Achtung: Kraftpakets Beiträge sind, egal mit wessen Zustimmung, grundsätzlich unügltig!

Page666 - 46
Profi (offline)

Dabei seit 07.2005
612 Beiträge
Geschrieben am: 26.11.2009 um 17:51 Uhr

Zitat von 39:

Zitat von Happy_Hippo:

Muss es mit Timer sein??

Ansonsten würd ichs mit der prozedur machen:

sleep(integer in ms);

oder

procedure Delay(Milliseconds: Integer);
var
Tick: DWord;
Event: THandle;
begin
Event := CreateEvent(nil, False, False, nil);
try
Tick := GetTickCount + DWord(Milliseconds);
while (Milliseconds > 0) and
(MsgWaitForMultipleObjects(1, Event, False, Milliseconds, QS_ALLINPUT) <> WAIT_TIMEOUT) do
begin
Application.ProcessMessages;
if Application.Terminated then Exit;
Milliseconds := Tick - GetTickcount;
end;
finally
CloseHandle(Event);
end;
end;


OK, und das kommt jetzt zwischen 1. Befehl und 2. Befehl?


Nein, zwischen Befehl 1 und 2 musst Du die Prozedur aufrufen.

https://www.youtube.com/user/wormcluster

39 - 31
Champion (offline)

Dabei seit 07.2009
7448 Beiträge
Geschrieben am: 26.11.2009 um 17:53 Uhr
Zuletzt editiert am: 26.11.2009 um 17:53 Uhr

Zitat von Page666:

Zitat von 39:



OK, und das kommt jetzt zwischen 1. Befehl und 2. Befehl?


Nein, zwischen Befehl 1 und 2 musst Du die Prozedur aufrufen.


Also das Hier:

Event := CreateEvent(nil, False, False, nil);
try
Tick := GetTickCount + DWord(Milliseconds);
while (Milliseconds > 0) and
(MsgWaitForMultipleObjects(1, Event, False, Milliseconds, QS_ALLINPUT) <> WAIT_TIMEOUT) do
begin
Application.ProcessMessages;
if Application.Terminated then Exit;
Milliseconds := Tick - GetTickcount;
end;
finally
CloseHandle(Event);

oder was?

Achtung: Kraftpakets Beiträge sind, egal mit wessen Zustimmung, grundsätzlich unügltig!

Page666 - 46
Profi (offline)

Dabei seit 07.2005
612 Beiträge
Geschrieben am: 26.11.2009 um 18:10 Uhr

Weisst Du nicht, wie man Prozeduren definiert und aufruft? Dann mach´s doch lieber so: [1.Befehl] sleep([Wert in Millisekunden, wie lange gewartet werden soll]) [2. Befehl]

https://www.youtube.com/user/wormcluster

39 - 31
Champion (offline)

Dabei seit 07.2009
7448 Beiträge
Geschrieben am: 26.11.2009 um 19:22 Uhr

aha, das geht!

Achtung: Kraftpakets Beiträge sind, egal mit wessen Zustimmung, grundsätzlich unügltig!

  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -