Page 1 of 1

DCACTIVEXCONTROL ... SUBCLASS

Posted: Sat Dec 22, 2012 1:46 pm
by unixkd
Hi Roger,

The following program is not working form me. It appear the SUBCLASS is not working for DCACTIVEXCONTROL

Function MSOCtrl()
LOCAL GetList[0], GetOptions, oCtrl
@ 0,0 DCSTATIC TYPE XBPSTATIC_TYPE_RECESSEDBOX ;
SIZE 96,23.5 ;
OBJECT oStatic ;
RESIZE DCGUI_RESIZE_REPOSONLY_Y

@ .2,.5 DCACTIVEXCONTROL oCtrl SIZE 95,23;
PARENT oStatic;
CLSID 'Ultra.OfficeControl' SUBCLASS 'MSOfficeCTRL()'

DCGETOPTIONS PIXEL TOOLTIPFONT '12.Lucida Console Bold'

DCREAD GUI FIT TITLE 'MS office Control' OPTIONS GetOptions

RETURN nil
*
CLASS MSOfficeCTRL From DC_XbpActiveXControl
EXPORTED:
INLINE METHOD Init()

DCMSGBOX 'I am not what you think.', ;
'You think I am DC_XbpPushButtonXP', ;
'but I am really ' + ::className() ;
FONT '12.Lucida Console Bold' ;
TIMEOUT 5
self:DC_XbpActiveXControl:Init()
RETURN self
ENDCLASS

Re: DCACTIVEXCONTROL ... SUBCLASS

Posted: Sun Dec 23, 2012 12:51 pm
by rdonnay
It looks like I never tested subclass with DC_ActiveXControl.

You can fix this problem in _DCGETBX.PRG.

Look for the following code:

Code: Select all

   ELSEIF nType == GETLIST_ACTIVEX

      #if XPPVER > 1900000

      IF Valtype(cSubClass)=='C' .AND. IsFunction(Strtran(cSubClass,'()',''))

        oXbp := &(cSubClass+'()')    <<<<<<< was (remove this)
        oXbp := &cSubClass    <<<<<<< IS (add this)

        oXbp := oXbp:new( oParent, , ;
            { nStartCol, nStartRow }, { nWidth, nHeight }, ;
            _Pres(aGetListItem[aGETLIST_PRESENTATION]), lVisible, self )

      ELSE
        oXbp := DC_XbpActiveXControl():new( oParent, , ;
         { nStartCol, nStartRow }, { nWidth, nHeight }, ;
         _Pres(aGetListItem[aGETLIST_PRESENTATION]), lVisible, self )
      ENDIF
      ::createObject(oXbp)

      #endif
Rebuild DCLIPX.DLL by running build19_sl1.bat

This fix will be in the next build.

Here is another workaround if you don't want to change dclipx.dll :

Change your code to:

Code: Select all

@ .2,.5 DCACTIVEXCONTROL oCtrl SIZE 95,23;
PARENT oStatic;
CLSID 'Ultra.OfficeControl' SUBCLASS 'MSOfficeCTRL'

Re: DCACTIVEXCONTROL ... SUBCLASS

Posted: Tue Dec 25, 2012 2:14 am
by unixkd
Thanks Roger

I prefer the second option and it works. I hope it still be an option in future release.

Joseph

Re: DCACTIVEXCONTROL ... SUBCLASS

Posted: Thu Dec 27, 2012 9:36 am
by rdonnay
I prefer the second option and it works. I hope it still be an option in future release.
I fixed the code so it will work both ways.

Re: DCACTIVEXCONTROL ... SUBCLASS

Posted: Thu Dec 27, 2012 12:05 pm
by hz_scotty
Hello

by DCBROWSE with "SUBCLASS" and "USEVISUALSTYLE" the System freeze and i got an error

Code: Select all

@ 3,0 DCBROWSE ::oBrowse ALIAS ::KALMAU SIZE 137,28.6+nHoehe NOHSCROLL;
         PRESENTATION aPres;
         SUBCLASS "XbpBrowseCustom()";     // Ownerdraw!
         ITEMSELECTED {|| ::nRec := (::KALMAU)->(RecNo()),DoKalU_Zeig(::KALMAU, ::lNew, ::nRec, ::oBrowse:colpos ),::oBrowse:refreshall(),DC_SetAppFocus(::oBrowse)  };
         EVAL {|o| o:ItemRbDown:={|aMPos,aLC,oBr|ActRbMenu(aMPos,aLC,oBr,oPopupMenu)} };
         FONT {|| "8.Tahoma"};
         ID "Fenster";
         NOVSCROLL ;
         SCOPE;
         AUTOREFRESH 3000;
         HEADLINES 3
* bei SUBCLASS kein "USEVISUALSTYLE" !!!

Code: Select all

FEHLERPROTOKOLL von MSI-WORKS Ver.1.90.5.000 "D:\PROJEKTE\FAKT\faktxpp-gui\FAKTXPPGUI.EXE" Datum: 26.12.2012 15:47:24

Xbase++ Version     : Xbase++ (R) Version 1.90.355
Betriebssystem      : Windows 7 06.01 Build 07601 Service Pack 1
Memory (RAM_AVAIL)  : 588.80 of 2095.10 MB
DiskSpace D:        : 44994.49 MB
Alias()             : leer
Recno()             : leer
Found()             : NO
NetError()          : NO
Select()            : 1
IndexOrd()          : 0
WorkSpaceList       : 
------------------------------------------------------------------------------

Asxml10.dll    : Xbase++ Development Tool
ot4xb.dll      : 1.90.0331 Open Tools for Xbase++ 

------------------------------------------------------------------------------
oError:args         :
          -> VALTYPE: O CLASS: XbpCellGroup
          -> VALTYPE: N VALUE: 0
oError:canDefault   : N
oError:canRetry     : N
oError:canSubstitute: J
oError:cargo        : NIL
oError:description  : Interne Datenstrukturen besch„digt
oError:filename     : 
oError:genCode      :         41
oError:operation    : :GetCell
oError:osCode       :          0
oError:severity     :          2
oError:subCode      :          5
oError:subSystem    : BASE
oError:thread       :          2
oError:tries        :          0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------

Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1705)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(502)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1768)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(500)
Aufgerufen von STANDARDEH(272)
Aufgerufen von (B)ERRORSYS(110)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1705)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(502)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1768)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(500)
Aufgerufen von STANDARDEH(272)
Aufgerufen von (B)ERRORSYS(110)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1705)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(502)
Aufgerufen von STANDARDEH(272)
Aufgerufen von (B)ERRORSYS(110)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1705)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(500)
Aufgerufen von ERRORLOG(610)
Aufgerufen von STANDARDEH(292)
Aufgerufen von (B)ERRORSYS(110)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1705)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(502)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1768)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(500)
Aufgerufen von STANDARDEH(272)
Aufgerufen von (B)ERRORSYS(110)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1705)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(502)
Aufgerufen von STANDARDEH(272)
Aufgerufen von (B)ERRORSYS(110)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1705)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(502)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1768)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(500)
Aufgerufen von ERRORLOG(610)
Aufgerufen von STANDARDEH(292)
Aufgerufen von (B)ERRORSYS(110)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1705)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(502)
Aufgerufen von STANDARDEH(272)
Aufgerufen von (B)ERRORSYS(110)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1705)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(500)
Aufgerufen von STANDARDEH(272)
Aufgerufen von (B)ERRORSYS(110)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1705)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(502)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1768)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(500)
Aufgerufen von STANDARDEH(272)
Aufgerufen von (B)ERRORSYS(110)
Aufgerufen von XBPBROWSECUSTOM:CUSTOMDRAWCELL(1705)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1566)
Aufgerufen von DC_XBPBROWSE:HANDLEEVENT(1101)
Aufgerufen von FORWARDCUSTOMDRAWCELL(1522)
Aufgerufen von (B)XBPCOLUMN:CREATE(502)
with "no" USEVISUALSTYLE Command - its ok
The Question is - is this a anomalie or a mistake?

Edit: the error is only when the "manifest-file" is aktiv, without "manifest" and "USEVISUALSTYLE" in sourcecode it seems ok - no error

Re: DCACTIVEXCONTROL ... SUBCLASS

Posted: Sat Dec 29, 2012 11:33 am
by rdonnay
I have not seen any problem when combining Ownerdrawing and UseVisualStyle.

Look at the sample program in \exp19\samples\browse\ownerdraw.prg.
It works fine.

Re: DCACTIVEXCONTROL ... SUBCLASS

Posted: Sat Dec 29, 2012 12:28 pm
by Auge_Ohr
hi Hans,

did it happend on same PC where my old Ownerdraw Sample did not run ?

if yes @Roger : if remember right on Hans PC the AntiVirus Application AVAST (?) had "change something"

Re: DCACTIVEXCONTROL ... SUBCLASS

Posted: Sat Dec 29, 2012 1:27 pm
by hz_scotty
NO - another PC and another OS (now Win7 prof.32Bit) (bevor WinXP)
YES - AVAST is Installed but not Running (to test)

I found that the Error is only when the "Manifest" ist availible
it's the combination - Command SUBCLASS, USEVISUALSTYLE and the MANIFEST-File
with no "MANIFEST" it is ok - or i remove USEVISUALSTYLE and have the "MANIFEST" File

any Idea?

Re: DCACTIVEXCONTROL ... SUBCLASS

Posted: Sat Dec 29, 2012 1:49 pm
by hz_scotty
I have not seen any problem when combining Ownerdrawing and UseVisualStyle.

Look at the sample program in \exp19\samples\browse\ownerdraw.prg.
It works fine.
i got this :cry: when i start your example
when i rename the "dropfilter.exe.manifest" it works.
Zwischenablage04.jpg
Zwischenablage04.jpg (109.35 KiB) Viewed 13229 times
Zwischenablage03.jpg
Zwischenablage03.jpg (96.37 KiB) Viewed 13229 times
Zwischenablage02.jpg
Zwischenablage02.jpg (47.09 KiB) Viewed 13229 times

Re: DCACTIVEXCONTROL ... SUBCLASS

Posted: Sat Dec 29, 2012 4:08 pm
by rdonnay
This sounds like a bug in your version of Xbase++.

I don't have any problems with a manifest file.

I suspect that you may not be using the latest hotfixes.