Have you looked at what class is actually instantiated?
On July 4, 2019 7:53:52 AM EDT, "MB Software Solutions, LLC" mbsoftwaresolutions@mbsoftwaresolutions.com wrote:
Hi wOOdy,
The pageframe does have its MemberClass settings set here: https://www.screencast.com/t/sFIpL8MLFeC
I tried to (re-)define the SCX Properties field but VFP didn't like it for some reason.
Here's the code from the Class Browser of my pagbase class, doing pretty much what you said:
*-- Class: pagbase (e:\dev\fabnet\classes\mjbbase.vcx) *-- ParentClass: page *-- BaseClass: page *-- Time Stamp: 07/03/19 01:15:11 PM
DEFINE CLASS pagbase AS page
Caption = "Page1" Height = 188 Width = 188 *-- has the page's backcolor stored in this property in the Init event so as to be reverted to this in the activate/deactivate events. initialbackcolor = "" *-- checks to see if there's a grid on this page in the UIEnable and calls its autofit if found. lgridautofit = .T. *-- XML Metadata for customizable properties _memberdata = [<VFPData><memberdata name="lgridautofit" display="lGridAutofit"/></VFPData>] Name = "pagbase"
PROCEDURE Deactivate thisform.LockScreen = .t. WITH this .fontbold = .f. IF PEMSTATUS(this,"InitialBackColor",5) THEN .BackColor = .InitialBackColor ELSE .ResetToDefault("Backcolor") ENDIF && pemstatus
.ResetToDefault("FontSize") ENDWITH thisform.LockScreen = .f. ENDPROC
PROCEDURE Activate WITH this .fontbold = .t.
IF PEMSTATUS(this,"InitialBackColor",5) THEN .BackColor = .InitialBackColor ELSE .ResetToDefault("Backcolor") ENDIF && pemstatus()
.ResetToDefault("FontSize") .FontSize = this.FontSize + 2
IF .BackColor > RGB(0,0,0) + 50 THEN && could have just said 10, but put the RGB in to illustrate the point and in case I go the opposite direction later .BackColor = .BackColor - 50 && make slightly lighter ENDIF .refresh() ENDWITH
*** mjb 07/02/2019 - added for FabNet grids seemingly not autofitting for some reason despite calls elsewhere LOCAL oControl as Control FOR EACH oControl IN this.Controls FOXOBJECT IF LOWER(oControl.BaseClass) = "grid" AND PEMSTATUS(oControl,'lAutofit',5) AND oControl.lAutoFit THEN oControl.Autofit() ENDIF ENDFOR ENDPROC
PROCEDURE Init DODEFAULT() this.Initialbackcolor = this.BackColor
*** mjb 05/16/2019 - added to help accentuate difference between Production and not IF VARTYPE(oUtils) = "O" AND PEMSTATUS(oUtils,'SetFontName',5) THEN oUtils.SetFontName(this) ENDIF ENDPROC
ENDDEFINE
*-- EndDefine: pagbase
On 7/4/2019 3:32 AM, juergen@wondzinski.de wrote:
As long as you have no MemberClass from a MemberClassLibrary defined
in your pageframe, new pages are always plain stock standard pages from VFP's internal baseclass.
I have a simple PRG for those nonvisual Memberclasses, which is
basically just a
DEFINE MyPage AS PAGE ENDDEFINE
Save that as MyGrdPages.prg.
Assign that to your MyPageFrame class as MemberClass = "MyPage" MemberClassLibrary = "MyGrdPages.prg"
VFP then will warn you that any code assigned to your existing pages
will get lost, thus you better copy that to a temporary file and add it back afterwards.
Some things you may want to add to your MyPage class:
PROCEDURE ACTIVATE This.FontBold = .T. ENDPROC
PROCEDURE DEACTIVATE This.FontBold = .F. ENDPROC
Makes a more visual effect to the current page-Caption. You could
also change the FontColor.
wOOdy
-----Ursprüngliche Nachricht----- Von: ProFox profox-bounces@leafe.com Im Auftrag von MB Software
Solutions, LLC
Gesendet: Mittwoch, 3. Juli 2019 22:03 An: profox@leafe.com Betreff: Super bizarre page.init bug on form.pageframe -- it never
runs! (VFP9SP2)
I added 2 pages to my existing pageframe so that I could add more
functionality to this form. There are pages that I conditionally instantiate based on user settings. But for these 2 new pages (automatically added via the IDE after I set the pageframe.PageCount from 11 to 13), their Init events never run. I'm baffled.
See soundless Camtasia demo I put together to show this: https://www.screencast.com/t/eZ1EyfDewnw
I'm hoping somebody can see something obvious that is eluding me!
tia, --Mike
This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus
[excessive quoting removed by server]