why are you sendin this to me?

From: CV <[EMAIL PROTECTED]>
Reply-To: Getting Started <gettingstarted@lists.realsoftware.com>
To: Getting Started <gettingstarted@lists.realsoftware.com>
Subject: Re: Same code, different frame ?
Date: Sun, 4 Jun 2006 17:20:51 -0700


On Jun 4, 2006, at 2:45 PM, FreeFL wrote:

|    4/06/06 ~ 6:02 -0700 :
|    CV,
|         " Re: Same code, different frame ? "



It's important to recognize that the benefits of window subclassing (and interfaces) are limited with respect to the functionality that you've listed. Methods can be declared in the superclass and will be inherited by the subclass windows. Controls are not inherited. However, existing controls can be configured by methods declared in the superclass and implemented(overridden) by code in the subclassed windows. Frame properties aren't settable in code so I doubt that subclassing is a help in that regard.

But you can experiment with subclassing windows to determine what may or may not be useful for you: Create a new class, say SuperWindow, and set it's superclass to Window in the Properties pane. For demonstration, add a property to SuperWindow, say MyProperty as integer = 500, and a method, GetMyProperty as integer which returns MyProperty. Set Window1's superclass to SuperWindow in the properties pane and add a pushbutton to Window1. In the pushbutton put: Msgbox str(self.GetMyProperty). Then run and click the button.

And you can do things like this for any window whose super is SuperWindow:

...
If Window(i) IsA SuperWindow then
SuperWindow(Window(i).Top = 50  // window class members are available
msgbox str(SuperWindow.GetMyProperty)
...



Thank you for these explanations.
Two more questions :

- when I create the property, if I write in the dialog "myproperty as integer = 500" it closes nicely on enterkey but does not compile. Is your example to be understood as a shortcut for first creating property, then giving it a value somewhere else, or is this syntax correct in the definition dialog ? I run RB555 on a mac, and maybe the syntax you show is correct in RB200x but not in RB555 ?

- your example :
   SuperWindow(Window(i).Top = 50
seems to need another parenthesis. Should it not be :
   SuperWindow(Window(i)).Top = 50


In 5.5, just add a property MyProperty as integer, then initialize it in the code editor. The way I wrote it was just email 'shorthand', but in 200x you can do: dim MyProperty as integer = 500 for local variables in the code editor, and the property declaration pane also has fields for initializing as part of the declaration. Yes, you are correct about adding the missing parenthesis.

Best regards,

Jack



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

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>


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

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to