[Lazarus] screen.cursor := crHourglass and Linux

Mattias Gaertner nc-gaertnma at netcologne.de
Sat Apr 16 12:05:50 CEST 2011


On Sat, 16 Apr 2011 11:40:59 +0200
John Landmesser <JohnML at online.de> wrote:

> Am 15.04.2011 21:41, schrieb DSK:
> >
> > Yes, your program is responsible for indicating that you have started 
> > [or finished] a long process.
> >
> 
> Ok, but my problem is different:
> 
> in the app running on windows Hourglass is shown by:
> screen.cursor := crHourglass;
> 
> but for  linux you need:
> screen.cursor := crHourglass;
> Application.ProcessMessages;
> 
> isn't that in conflict to:
> "write once, compile anywhere" ?

Not really, because the LCL is a event based/driven GUI engine. You
must leave the main thread enough processing time. 
When processing a long operation you must call
Application.ProcessMessages or put the operation into another queue.
Otherwise your application stops responding.
The LCL is not a winapi emulator.

Mattias




More information about the Lazarus mailing list