Page 1 of 1

Lazarus Pascal – How to make a Delay/Sleep without locking up your application

Lazarus Pascal – How to make a Delay/Sleep without locking up your application

Welcome to the Tweaking4All community forums!
When participating, please keep the Forum Rules in mind!

Topics for particular software or systems: Start your topic link with the name of the application or system.
Examples: "MacOS X - Your question", "MS Word - Your Tip or Trick".

Please note that switching to another language when reading a post will not work!
Posts will not have a translated counterpart.




RSS Feed

Home Forums Software Development Delphi, Lazarus, Free Pascal Lazarus Pascal – How to make a Delay/Sleep without locking up your application

This topic contains 0 replies, has 1 voice, and was last updated by  hans 1 week, 3 days ago.

Viewing 1 post (of 1 total)
  • Author
    Posts
  • 11500

    hans
    Keymaster

    So I had to add a delay (better said: sleep) in my code, so that after displaying a temporary status message, would revert back to it’s previous message. Kind-a like a brief bleep showing a notification and then going back to where we left off.

    Now the sleep() function has a little problem … it’s totally locks your application (Zzz mouse, or spinning ball) and the user can’t really do anything.

    With a neat little trick you can do this better;

    procedure MyDelay(DelayTickCount: DWORD);
      var
        StartTickCount : DWORD;
      begin
        StartTickCount := GetTickCount;
        while (GetTickCount < StartTickCount + DelayTickCount) and (not Application.Terminated) do
          Application.ProcessMessages;
      end;   

    So this function does NOT lock you user interface, but does wait with the next steps for “DelayTickCount” milliseconds.

Viewing 1 post (of 1 total)



You must be logged in to reply to this topic.