Re: Subclassing Base Classes

Author: Fred Taylor

Posted: 2000-07-28 at 11:24:03

Here's a little MAKEBASE.PRG I've whipped up for just such an occassion:

--------------------

*

* Fred Taylor 2/9/99 - just so you know where it came from!

*

* Define base classes into xxxBase.VCX

*

LOCAL cRoot, cBase

cRoot = 'xxx' && Change this to what ever you want ie: 'Mfx'

&& This will give you classes called:

&& MfxTextBox, etc in a MfxBase.VCX

cBase = cRoot + 'Base'

*

* aBaseClass[x,2]

* [x,1] = VFP Base Class name

* [x,2] = .T. - Create subclass

*

LOCAL aBaseClass[26,2] && If VFP ever defines new baseclasses, add them

here

aBaseClass[1,1] = 'CheckBox'

aBaseClass[1,2] = .T.

aBaseClass[2,1] = 'ComboBox'

aBaseClass[2,2] = .T.

aBaseClass[3,1] = 'CommandButton'

aBaseClass[3,2] = .T.

aBaseClass[4,1] = 'CommandGroup'

aBaseClass[4,2] = .T.

aBaseClass[5,1] = 'Container'

aBaseClass[5,2] = .T.

aBaseClass[6,1] = 'Control'

aBaseClass[6,2] = .T.

aBaseClass[7,1] = 'Custom'

aBaseClass[7,2] = .T.

aBaseClass[8,1] = 'EditBox'

aBaseClass[8,2] = .T.

aBaseClass[9,1] = 'Form'

aBaseClass[9,2] = .T.

aBaseClass[10,1] = 'FormSet'

aBaseClass[10,2] = .T.

aBaseClass[11,1] = 'Grid'

aBaseClass[11,2] = .T.

aBaseClass[12,1] = 'Image'

aBaseClass[12,2] = .T.

aBaseClass[13,1] = 'Label'

aBaseClass[13,2] = .T.

aBaseClass[14,1] = 'Line'

aBaseClass[14,2] = .T.

aBaseClass[15,1] = 'ListBox'

aBaseClass[15,2] = .T.

aBaseClass[16,1] = 'OptionButton'

aBaseClass[16,2] = .T.

aBaseClass[17,1] = 'OptionGroup'

aBaseClass[17,2] = .T.

aBaseClass[18,1] = 'OleBoundControl' && OLE controls need to be manually

done

aBaseClass[18,2] = .F.

aBaseClass[19,1] = 'OleControl' && OLE controls need to be manually done

aBaseClass[19,2] = .F.

aBaseClass[20,1] = 'PageFrame'

aBaseClass[20,2] = .T.

aBaseClass[21,1] = 'Separator'

aBaseClass[21,2] = .T.

aBaseClass[22,1] = 'Shape'

aBaseClass[22,2] = .T.

aBaseClass[23,1] = 'Spinner'

aBaseClass[23,2] = .T.

aBaseClass[24,1] = 'TextBox'

aBaseClass[24,2] = .T.

aBaseClass[25,1] = 'Timer'

aBaseClass[25,2] = .T.

aBaseClass[26,1] = 'Toolbar'

aBaseClass[26,2] = .T.

*

* Now lets create the empty subclasses

*

* Delete any existing table

*

ERASE (cBase+'.VC*')

*

* Now add the VFP base classes

*

LOCAL xx

FOR xx=1 TO ALEN(aBaseClass,1)

IF aBaseClass[xx,2]

od = CREATEOBJECT(aBaseClass[xx,1])

od.SaveAsClass(cBase,cRoot+aBaseClass[xx,1])

ENDIF

ENDFOR

od = .NULL.

--------------------

Fred

ftaylor@uswest.net

----- Original Message -----

From: <DaePowell@aol.com>

To: "Multiple recipients of ProFox" <profox@leafe.com>

Sent: Thursday, July 27, 2000 10:51 PM

Subject: Subclassing Base Classes

> I've gotta do this really fast this weekend.

>

> What is the fastest way to subclass the VFP 6.0 base classes?

>

> happy Dae.

>

>

>

> ----------------------------------------

> Subscription maintenance at:

> http://leafe.com/mailListMaint.html

>

>

>

©2000 Fred Taylor