Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 7 of 7 total
Thread Application.Desktop.Cursor
Wed, Jan 13 2016 4:15 AMPermanent Link

Ronald

Hi,

If I use:

Application.Desktop.Cursor:=crWait;

I get the error:

[Error] edplanning.wbs (408,13): The referenced variable, parameter, or function Desktop does not exist
[Error] edplanning.wbs (408,21): The referenced variable, parameter, or function Cursor does not exist

What am I doing wrong?

Ronald
Wed, Jan 13 2016 4:29 AMPermanent Link

Matthew Jones

Ronald wrote:

> Application.Desktop.Cursor:=crWait;

That's the EWB1 way I think. EWB2 has a surface, but looks like the
cursor is the form's property. Not sure there is a "whole application
busy" option but there are 51 instances of the Cursor property in help
that would be worth a look at.

--

Matthew Jones
Wed, Jan 13 2016 4:38 AMPermanent Link

Rick

On 13/01/16 20:15, Ronald wrote:
> Application.Desktop.Cursor:=crWait;
>
> I get the error:
>
> [Error] edplanning.wbs (408,13): The referenced variable, parameter, or function Desktop does not exist
> [Error] edplanning.wbs (408,21): The referenced variable, parameter, or function Cursor does not exist
>
> What am I doing wrong?
>

Application.Surface.Cursor:=crWait; should do.

Can also use Form1.Cursor.

--
Rick
Wed, Jan 13 2016 4:51 AMPermanent Link

Matthew Jones

Rick wrote:

> Application.Surface.Cursor:=crWait; should do.

Hmm, it compiles. Funny, but the help is deficient here. If you search
for "Application" you don't find anything. But TApplication says there
is a global. The TSurface property for that doesn't have a Cursor
property anywhere I can see up the hierarchy. I'd also sort of want to
know that the cursor applies to children too, unless overridden.

--

Matthew Jones
Wed, Jan 13 2016 5:15 AMPermanent Link

Rick

On 13/01/16 20:51, Matthew Jones wrote:
>> Application.Surface.Cursor:=crWait; should do.
>
> Hmm, it compiles. Funny, but the help is deficient here. If you search
> for "Application" you don't find anything. But TApplication says there
> is a global. The TSurface property for that doesn't have a Cursor
> property anywhere I can see up the hierarchy. I'd also sort of want to
> know that the cursor applies to children too, unless overridden.
>

Yeah, occasionally I find myself navigating back through the ancestors
in the help trying to find a particular property but without success.

For example, it is possible to set TDialog.ScrollBars but apparently
this is not generally recommended and is a side-effect of the
inheritance structure. Maybe TSurface.Cursor is the same (although it
does successfully set the cursor for the entire application).

--
Rick
Wed, Jan 13 2016 8:28 AMPermanent Link

Ronald

Rick wrote:

<Application.Surface.Cursor:=crWait; should do.>

Thank you, could indeed not find the Cursor property in the Help, but I wil try this.

Greetings,
Ronald
Wed, Jan 13 2016 10:53 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Matthew,

<< Hmm, it compiles. Funny, but the help is deficient here. If you search for "Application" you don't find anything. But TApplication says there is a global. The TSurface property for that doesn't have a Cursor property anywhere I can see up the hierarchy. I'd also sort of want to know that the cursor applies to children too, unless overridden. >>

It's a side-effect of the compiler's special "if the method that you're referencing the property or method from *also* descends from the same base class as the containing class, then it can access the protected members of that class".

But, the Cursor property should actually be public for the TSurface class, so I'll add that and, as a side-effect, it will eliminate the confusion in the docs.

Tim Young
Elevate Software
www.elevatesoft.com
Image