Alaska Software Inc. - Tabpage:minimized and :minimze with SL1
Username: Password:
AuthorTopic: Tabpage:minimized and :minimze with SL1
AUGE_OHRTabpage:minimized and :minimze with SL1
on Sat, 02 May 2009 14:20:13 +0200
hi,

as long as Alaska do not document it, it is a BUG for me.

with SL1 behavior of Tabpage:minimized seems have change since v331.

also :minimize seems to be obsolet with SL1 while :maximize a Tabpage
"does meen" that other Tabpages are :minimize.

... but is does NOT meen that :minimized = .T., this is ONLY useing ar 
:create()

greetings by OHR
Jimmy
Clayton JonesRe: Tabpage:minimized and :minimze with SL1
on Sat, 02 May 2009 14:01:38 -0400
Hello Jimmy,

>as long as Alaska do not document it, it is a BUG for me.
>with SL1 behavior of Tabpage:minimized seem´s have change since v331.

In \source\sys\xbparts.prg they have overloaded the :TabActivate() and
:keyboard() methods and added keyboard min/max handling code to them:

***** 331
CLASS XbpTabPage FROM XbpBaseTabPage
ENDCLASS

*** 355
FREEZE CLASS XbpTabPage FROM XbpBaseTabPage
 EXPORTED:
   METHOD TabActivate()
   METHOD Keyboard()
ENDCLASS

This is behavior that we used to have to program ourselves.  Now that
they have added it, it may break some of our code that we have created
over the years (it caused me to make some adjustments in TD code).

If you are using xbpTabPage directly (without a subclass) then you'll
have to either modify your previous tab handling code to adapt to the
new implementation or force the class to revert back to it's original
state by subclassing it and overloading/reverting the methods, like
this

 CLASS MyTabPage FROM XbpTabPage
 EXPORTED:
   METHOD TabActivate()
   METHOD Keyboard()
 ENDCLASS

 METHOD MyTabPage:TabActivate()
 ::XbpBaseTabPage:TabActivate()
 RETURN self

 METHOD MyTabPage:keyboard(nKey)
 ::XbpBaseTabPage:keyboard(nKey)
 RETURN self

This will preserve your existing code.  All you have to do is make
your code call your new subclass.  If you already have a subclass,
than just add the overloaded methods.

Which path is best depends on how much work is involved.  In the case
of a simple single-row tabpage routine I chose to modify my
tabActivate code to adapt to the the new version (it simplified my
code).  In the case of a very complex multi-row tabpage subclass I
chose to revert the base class (mainly because the new code can't
handle multiple rows, but even if it could, adapting it would have
meant lots of tedious work - why bother when the reversion is so
easy).

I agree this change should have been documented.  The docs for
XbpTabpage do show the xbeP_Keyboard message, which wasn't there
before, but there's no mention anywhere (that I have found) that
alerts us to these changes.


Regards,
Clayton

Clayton Jones   www.cjcom.net 
 Top-Down Library for Xbase++
 X-DBU Database Utility   
 X-MEMO Memo Field Replacement
AUGE_OHRRe: Tabpage:minimized and :minimze with SL1
on Sat, 02 May 2009 20:20:17 +0200
hi Clayton,

while we talking about Alaskas XbpTabpage :

does somebody know it it is a "real" Windows Control and what API based on ?

i do ask this while i found out that "Tabpage" itself seem "not to exist" as 
Control.

as i understand you have "Tab" and you have something like Tab"Control" like
in MsComCtl.OCX. this seems me also the Reason why XbpTabpage have no
multirow Property as "Common Control" v5/v6 normal have ? (see Picture)

i did made that Sample after finsh Codejock "Tab" Control so i can use 
allmost
same Code for MsComCtl.OCX which Alaska use for XbpStatusbar and XbpToolbar
too so i wonder why Alaska did not give us this "multirow Tab" Control with 
v1.9x ?

greetings by OHR
Jimmy







MS_TABSTRIP.JPG
Clayton JonesRe: Tabpage:minimized and :minimze with SL1 - TDmultiTab.GIF (0/1)
on Sat, 02 May 2009 20:41:50 -0400
Hello Jimmy,

>does somebody know it it is a "real" Windows Control and what API based on ?
>...as i understand you have "Tab" and you have something like Tab"Control" like
>in MsComCtl.OCX. this seem´s me also the Reason why XbpTabpage have no
>multirow Property as "Common Control" v5/v6 normal have ? (see Picture)
>...so i wonder why Alaska did not give us this "multirow Tab" Control 

I don't know the answer to any of your questions, but I do know that
it's possible to make a multi-tab control with xbpTabPage.  This
screenshot is Top-Down's tdcMultiTab class (any number of rows, any
number of tabs on each row).

Regards,
Clayton

Clayton Jones   www.cjcom.net 
 Top-Down Library for Xbase++
 X-DBU Database Utility   
 X-MEMO Memo Field Replacement
AUGE_OHRRe: Tabpage:minimized and :minimze with SL1 - TDmultiTab.GIF (0/1)
on Sun, 03 May 2009 04:11:29 +0200
hi,

> I don't know the answer to any of your questions, but I do know that
> it's possible to make a multi-tab control with xbpTabPage.  This
> screenshot is Top-Down's tdcMultiTab class (any number of rows, any
> number of tabs on each row).

WOW, but im shure it was a lot of work to manage it with XbpTabpage.

i got "Picture" too, using c:\Alaska\XPPW32\source\SYS\activex.prg
ImageList() Class which is also Part of MsComCtl.OCX.
But while it is not documented it is hard to figure out how it work.

also "original" Tabpage have a Placement property

tabPlacementTop       0
tabPlacementBottom 1
tabPlacementLeft       2
tabPlacementRight     3

but Xbase++ does only have 0/1

greetings by OHR
Jimmy
Clayton JonesRe: Tabpage:minimized and :minimze with SL1 - TDmultiTab.GIF (1/1)
on Sat, 02 May 2009 20:41:51 -0400