>DEFINE CLASS TripPage AS PAGE
> TripID = 0
> PROCEDURE ACTIVATE
> SELECT trips
> SEEK(THIS.TripID)
> THISFORM.REFRESH()
>ENDPROC
>ENDDEFINE
>
>Here's where I add the pages to the pageframe:
>
>i = 2
>SELECT trips
>WITH thisform.tsPageFrame1
> .pagecount = 1
> SCAN FOR trips.igroup = thisform.group
> lcPageName = SYS(2015)
> .AddObject(lcPageName,'TripPage')
> .pages[i].TripID = trips.tripkey
> .pages[i].caption = trips.cname
> i = i + 1
> SELECT trips
> ENDSCAN
> lcOldPageName = .pages[1].name
> .removeobject(lcOldPageName)
>...
>
>-Michelle
>
>
><\PRE>
I always try to use the approach when I create the class (usually invisible Label) with all necessary properties and methods and just drop it in all pages/containers which need this functionality. Specific properties can be easily customized for each instance if necessary. In case of using for Pages I usually place the code in UIEnable event method so it fires automatically on changing pages. I realize that the Line class is more lightweight, but Label is used because it is easy for developer to find it on pages (it usually has the distinct ForeColor and it is invisible at the runtime). And the caption says what this label does. Like: "TabChanger", "IdFinder" ...Nick Neklioudov
Universal Thread Consultant
3 times Microsoft MVP - Visual FoxPro
"I have not failed. I've just found 10,000 ways that don't work." - Thomas Edison