OK, let's try a stupid little example.  Let's say I start a new project and
on Window1, I drag out 2 pushbuttons.  Now I put the following code into the
action event of PushButton1:

  static myCount as integer
  myCount= myCount+ 1
  me.Caption= str(myCount)

When I push the button, it increments the number shown on the button.  I
think that's pretty cool, so I do the same thing in PushButton2.  Now I run
my project and press PushButton1 three times, and it clicks up 1, 2, 3.  I
press PushButton2 twice and it clicks up 1, 2.  I'm pleased with myself (I'm
easily amused), and I want to put a few more buttons out on the window to do
the same thing.

It occurs to me at this point that instead of copying the code from button
to button, that a subclass would be easier and a lot more fun.  So I create
a class, call it myButton and make its super PushButton.  I copy my code
into the Action event and I'm ready to roll.

I drag a few myButton's out on the window and run the project.  I press
myButton1 twice and it clicks up 1, 2.  Looking good!  So I click myButton2
twice and it clicks up 3, 4.  Not at all what I expected!

I fully understand why it works this way, and I approve of it working this
way.  I'm just saying it's an easy newbie mistake to make.

Tim


> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Behalf Of
> [EMAIL PROTECTED]
> Sent: Tuesday, February 27, 2007 7:22 PM
> To: [email protected]
> Subject: RE: Confused about new things in RB
>
>
> On Feb 27, 2007, at 23:51 UTC, Tim Hare wrote:
>
> > Let me try to put it another way.  The distinction is probably better
> > highlighted by comparing the class vs. the instance.  If you were to
> > put the static variable in the Action event of the instance, then it
> > acts in the traditional manner.
>
> I'm not sure what you mean by this.  As a static variable, it's a
> single global value that's only accessible from within the method.
>
> > If you use that same static in the
> > class, then it acts slightly differently.
>
> How does it act slightly differently?  It's a single global value
> that's only accessible from within the method, no matter where you do
> it.  I can see no difference whatsoever.
>
> I'm not trying to pick on you here; I think one of us is confused about
> how static variables work, and if that's the case, there are probably
> others here that are confused too.  Seems worth a bit of effort to get
> to the bottom of it.
>
> Best,
> - Joe
>
> --
> Joe Strout -- [EMAIL PROTECTED]
> Verified Express, LLC     "Making the Internet a Better Place"
> http://www.verex.com/
>
> _______________________________________________
> Unsubscribe or switch delivery mode:
> <http://www.realsoftware.com/support/listmanager/>
>
> Search the archives:
> <http://support.realsoftware.com/listarchives/lists.html>
>
> --
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.446 / Virus Database: 268.18.4/703 - Release Date:
> 2/26/2007 2:56 PM
>
--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 268.18.4/703 - Release Date: 2/26/2007
2:56 PM

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to