FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Clase TActiveX mejorada y RibbonBar más fácil
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Clase TActiveX mejorada y RibbonBar más fácil
Posted: Tue Apr 07, 2009 07:42 AM
Gracias a las pruebas que estamos haciendo estos dias con el RibbonBar de CodeJock, hemos mejorado la Clase TActiveX para que automaticamente use objetos TOleAuto en los eventos, por lo que el uso del RibbonBar es mucho más simple y fácil :-)

Aqui teneis un ejemplo de uso. Fijaros en la forma en que oControl se obtiene desde RibbonBarEvent():
Code (fw): Select all Collapse
#include "FiveWin.ch"

#define xtpControlButton      1

#define xtpFlagRightAlign     1

#define ID_ADDTAB            10
#define ID_ADDGROUP          20
#define ID_ADDBUTTON         30

static oRb

function Main()

   local oWnd, oAct, oMenu, oTabs, oGroups, oControls

   DEFINE WINDOW oWnd TITLE "Visual RibbonBar"

   @ 0, 0 ACTIVEX oAct PROGID "Codejock.CommandBarsFrame.12.1.1" OF oWnd SIZE 0, 0

   oAct:bOnEvent = { | cEvent, aParams | RibbonBarEvent( cEvent, aParams ) }

   oAct:Do( "AttachToWindow", oWnd:hWnd )

   oRb = oAct:Do( "AddRibbonBar", "fwh" )

   oMenu = oRb:Controls:Add( 2, 0, "Menu" )
   oMenu:Flags = xtpFlagRightAlign

   oTabs = oMenu:CommandBar:Controls:Add( 2, 0, "Tabs" )
   oTabs:CommandBar:Controls:Add( 1, ID_ADDTAB, "Add" )

   oGroups = oMenu:CommandBar:Controls:Add( 3, 0, "Groups" )
   oGroups:CommandBar:Controls:Add( 1, ID_ADDGROUP, "Add" )

   oControls = oMenu:CommandBar:Controls:Add( 3, 0, "Controls" )
   oControls:CommandBar:Controls:Add( 1, ID_ADDBUTTON, "Add Button" )

   ACTIVATE WINDOW oWnd

return nil

function RibbonBarEvent( cEvent, aParams )

   local oControl, oTab, oGroup, oItem 

   do case
      case cEvent == "Execute"
           
           oControl = aParams[ 1 ]
           
           do case
              case oControl:Id == ID_ADDTAB
                   oControl = oRb:InsertTab( oRb:TabCount + 1, "Tab " + AllTrim( Str( oRb:TabCount + 1 ) ) )
                   oControl:Id = oRb:TabCount
                   oControl:Selected = .T.

              case oControl:Id == ID_ADDGROUP
                   if oRb:TabCount > 0
                      oGroup = oRb:SelectedTab:Groups:AddGroup( "Group " + AllTrim( Str( oRb:SelectedTab:Groups:GroupCount + 1 ) ),;
                               ( oRb:SelectedTab:Index * 10 ) + oRb:SelectedTab:Groups:GroupCount + 1 )
                   endif   

              case oControl:Id == ID_ADDBUTTON
                   if oRb:SelectedTab:Groups:GroupCount > 0
                      oGroup = oRb:FindGroup( ( oRb:SelectedTab:Index * 10 ) + oRb:SelectedTab:Groups:GroupCount )
                      oItem = oGroup:Add( xtpControlButton, 1, nil )
                      oItem:Caption = "Button " + AllTrim( Str( oGroup:Count ) )
                   endif   
                   
              otherwise
                   if ! Empty( oControl:Caption )
                      MsgInfo( oControl:Caption )     
                   endif   

           endcase        
   endcase
   
return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Clase TActiveX mejorada y RibbonBar más fácil
Posted: Tue Apr 07, 2009 08:26 AM
Dinamicamente inspeccionando los controles del RibbonBar:



RibonBar.prg
Code (fw): Select all Collapse
#include "FiveWin.ch"

#define xtpControlButton      1

#define xtpFlagRightAlign     1

#define ID_ADDTAB            10
#define ID_ADDGROUP          20
#define ID_ADDBUTTON         30

static oRb

function Main()

   local oWnd, oAct, oMenu, oTabs, oGroups, oControls

   DEFINE WINDOW oWnd TITLE "Visual RibbonBar"

   @ 0, 0 ACTIVEX oAct PROGID "Codejock.CommandBarsFrame.12.1.1" OF oWnd SIZE 0, 0

   oAct:bOnEvent = { | cEvent, aParams | RibbonBarEvent( cEvent, aParams ) }

   oAct:Do( "AttachToWindow", oWnd:hWnd )

   oRb = oAct:Do( "AddRibbonBar", "fwh" )

   oMenu = oRb:Controls:Add( 2, 0, "Menu" )
   oMenu:Flags = xtpFlagRightAlign

   oTabs = oMenu:CommandBar:Controls:Add( 2, 0, "Tabs" )
   oTabs:CommandBar:Controls:Add( 1, ID_ADDTAB, "Add" )

   oGroups = oMenu:CommandBar:Controls:Add( 2, 0, "Groups" )
   oGroups:CommandBar:Controls:Add( 1, ID_ADDGROUP, "Add" )

   oControls = oMenu:CommandBar:Controls:Add( 2, 0, "Controls" )
   oControls:CommandBar:Controls:Add( 1, ID_ADDBUTTON, "Add Button" )

   ACTIVATE WINDOW oWnd

return nil

function RibbonBarEvent( cEvent, aParams )

   local oControl, oTab, oGroup, oItem 

   do case
      case cEvent == "Execute"
           
           oControl = aParams[ 1 ]
           
           do case
              case oControl:Id == ID_ADDTAB
                   oControl = oRb:InsertTab( oRb:TabCount + 1, "Tab " + AllTrim( Str( oRb:TabCount + 1 ) ) )
                   oControl:Id = oRb:TabCount
                   oControl:Selected = .T.

              case oControl:Id == ID_ADDGROUP
                   if oRb:TabCount > 0
                      oRb:SelectedTab:Groups:AddGroup( "Group " + AllTrim( Str( oRb:SelectedTab:Groups:GroupCount + 1 ) ),;
                                             ( oRb:SelectedTab:Index * 10 ) + oRb:SelectedTab:Groups:GroupCount + 1 )
                   endif   

              case oControl:Id == ID_ADDBUTTON
                   if oRb:TabCount == 0
                      oControl = oRb:InsertTab( oRb:TabCount + 1, "Tab " + AllTrim( Str( oRb:TabCount + 1 ) ) ) 
                      oControl:Id = oRb:TabCount
                      oControl:Selected = .T.
                   endif
                   if oRb:SelectedTab:Groups:GroupCount == 0
                      oRb:SelectedTab:Groups:AddGroup( "Group " + AllTrim( Str( oRb:SelectedTab:Groups:GroupCount + 1 ) ),;
                                             ( oRb:SelectedTab:Index * 10 ) + oRb:SelectedTab:Groups:GroupCount + 1 )
                   endif   
                   if oRb:SelectedTab:Groups:GroupCount > 0
                      oGroup = oRb:FindGroup( ( oRb:SelectedTab:Index * 10 ) + oRb:SelectedTab:Groups:GroupCount )
                      oItem = oGroup:Add( xtpControlButton, 1, nil )
                      oItem:Caption = "Button " + AllTrim( Str( oGroup:Count ) )
                   endif   
                   
              otherwise
                   if ! Empty( oControl:Caption )
                      ControlInspect( oControl )     
                   endif   

           endcase        
   endcase
   
return nil     

function ControlInspect( oControl )

   local oDlg, cCaption := PadR( oControl:Caption, 30 )
   
   DEFINE DIALOG oDlg TITLE "Control Properties" SIZE 300, 300
   
   @ 0.9, 1 SAY "Caption:"
   
   @ 1,  4  GET cCaption VALID ( oControl:Caption := AllTrim( cCaption ), .T. )
   
   @ 1.9, 1 SAY "Width:"
   
   @ 2.2, 4 GET oControl:Width SIZE 25, 12

   @ 1.9, 12 SAY "Height:"
   
   @ 2.2, 12 GET oControl:Height SIZE 25, 12
   
   ACTIVATE DIALOG oDlg CENTERED
   
return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Clase TActiveX mejorada y RibbonBar más fácil
Posted: Tue Apr 07, 2009 02:57 PM


Code (fw): Select all Collapse
#include "FiveWin.ch"

#define xtpControlButton      1

#define xtpFlagRightAlign     1

#define xtpImageNormal        0
#define xtpImageDisabled      1
#define xtpImageHot           2
#define xtpImageChecked       3
#define xtpImagePressed       4

#define ID_ADDTAB            10
#define ID_ADDGROUP          20
#define ID_ADDBUTTON         30
#define ID_ADDIMAGE          40

static oIcons, oRb 

function Main()

   local oWnd, oAct, oMenu, oTabs, oGroups, oControls, oImages

   DEFINE WINDOW oWnd TITLE "Visual RibbonBar"

   @ 0, 0 ACTIVEX oAct PROGID "Codejock.CommandBarsFrame.12.1.1" OF oWnd SIZE 0, 0

   oAct:bOnEvent = { | cEvent, aParams | RibbonBarEvent( cEvent, aParams ) }

   oAct:Do( "AttachToWindow", oWnd:hWnd )

   oIcons = oAct:Do( "icons" )

   oRb = oAct:Do( "AddRibbonBar", "fwh" )

   oMenu = oRb:Controls:Add( 2, 0, "Menu" )
   oMenu:Flags = xtpFlagRightAlign

   oTabs = oMenu:CommandBar:Controls:Add( 2, 0, "Tabs" )
   oTabs:CommandBar:Controls:Add( 1, ID_ADDTAB, "Add" )

   oGroups = oMenu:CommandBar:Controls:Add( 2, 0, "Groups" )
   oGroups:CommandBar:Controls:Add( 1, ID_ADDGROUP, "Add" )

   oControls = oMenu:CommandBar:Controls:Add( 2, 0, "Controls" )
   oControls:CommandBar:Controls:Add( 1, ID_ADDBUTTON, "Add Button" )

   oImages = oMenu:CommandBar:Controls:Add( 2, 0, "Images" )
   oImages:CommandBar:Controls:Add( 1, ID_ADDIMAGE, "Load Image" )

   ACTIVATE WINDOW oWnd

return nil

function RibbonBarEvent( cEvent, aParams )

   local oControl, oTab, oGroup, oItem, cBmpFile 

   do case
      case cEvent == "Execute"
           
           oControl = aParams[ 1 ]
           
           do case
              case oControl:Id == ID_ADDTAB
                   oControl = oRb:InsertTab( oRb:TabCount + 1, "Tab " + AllTrim( Str( oRb:TabCount + 1 ) ) )
                   oControl:Id = oRb:TabCount
                   oControl:Selected = .T.

              case oControl:Id == ID_ADDGROUP
                   if oRb:TabCount > 0
                      oRb:SelectedTab:Groups:AddGroup( "Group " + AllTrim( Str( oRb:SelectedTab:Groups:GroupCount + 1 ) ),;
                                             ( oRb:SelectedTab:Index * 10 ) + oRb:SelectedTab:Groups:GroupCount + 1 )
                   endif   

              case oControl:Id == ID_ADDBUTTON
                   if oRb:TabCount == 0
                      oControl = oRb:InsertTab( oRb:TabCount + 1, "Tab " + AllTrim( Str( oRb:TabCount + 1 ) ) ) 
                      oControl:Id = oRb:TabCount
                      oControl:Selected = .T.
                   endif
                   if oRb:SelectedTab:Groups:GroupCount == 0
                      oRb:SelectedTab:Groups:AddGroup( "Group " + AllTrim( Str( oRb:SelectedTab:Groups:GroupCount + 1 ) ),;
                                             ( oRb:SelectedTab:Index * 10 ) + oRb:SelectedTab:Groups:GroupCount + 1 )
                   endif   
                   if oRb:SelectedTab:Groups:GroupCount > 0
                      oGroup = oRb:FindGroup( ( oRb:SelectedTab:Index * 10 ) + oRb:SelectedTab:Groups:GroupCount )
                      oItem = oGroup:Add( xtpControlButton, 1, nil )
                      oItem:Caption = "Button " + AllTrim( Str( oGroup:Count ) )
                   endif   

              case oControl:Id = ID_ADDIMAGE
                   cBmpFile = cGetFile( "*.bmp", "Please select a BMP file" ) 
                   if File( cBmpFile )
                      MsgInfo( oIcons:Count + 1 )
                      oIcons:LoadBitmap( cBmpFile, oIcons:Count + 1, xtpImageNormal )
                   endif   
                   
              otherwise
                   if ! Empty( oControl:Caption )
                      ControlInspect( oControl )     
                   endif   

           endcase        
   endcase
   
return nil     

function ControlInspect( oControl )

   local oDlg, cCaption := PadR( oControl:Caption, 30 )
   
   DEFINE DIALOG oDlg TITLE "Control Properties" SIZE 300, 300
   
   @ 0.9, 1 SAY "Caption:"
   
   @ 1,  4  GET cCaption VALID ( oControl:Caption := AllTrim( cCaption ), .T. )
   
   @ 1.9, 1 SAY "Width:"
   
   @ 2.2, 4 GET oControl:Width SIZE 25, 12

   @ 1.9, 12 SAY "Height:"
   
   @ 2.2, 12 GET oControl:Height SIZE 25, 12

   @ 2.9, 1 SAY "Icon Id:"
   
   @ 3.4, 4 GET oControl:IconId SIZE 25, 12
   
   ACTIVATE DIALOG oDlg CENTERED
   
return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Clase TActiveX mejorada y RibbonBar más fácil
Posted: Tue Apr 07, 2009 03:04 PM

Una Clase TActiveX modificada y ampliada es necesaria para estos ejemplos.

Esta Clase la incluiremos en FWH 9.04.

Posiblemente publiquemos ya una versión preliminar de FWH 9.04 con estos cambios, para que podais empezar a usarlos :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Clase TActiveX mejorada y RibbonBar más fácil
Posted: Tue Apr 07, 2009 09:13 PM

Podeis descargar una demo (EXE y OCX) desde aqui:

http://www.mediafire.com/?sharekey=414c ... 6e282a0ee8

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Clase TActiveX mejorada y RibbonBar más fácil
Posted: Tue Apr 07, 2009 11:29 PM
Editando el texto del Tab y del Grupo:



Podeis descargarlo y probarlo desde aqui:
http://www.mediafire.com/?sharekey=d045 ... 8114394287

Code (fw): Select all Collapse
#include "FiveWin.ch"

#define xtpControlButton      1

#define xtpFlagRightAlign     1

#define xtpImageNormal        0
#define xtpImageDisabled      1
#define xtpImageHot           2
#define xtpImageChecked       3
#define xtpImagePressed       4

#define ID_ADDTAB            10
#define ID_ADDGROUP          20
#define ID_ADDBUTTON         30
#define ID_ADDIMAGE          40

static oIcons, oRb 

function Main()

   local oWnd, oAct, oMenu, oTabs, oGroups, oControls, oImages

   if ! IsActiveX( "Codejock.CommandBars.v13.0.0.Demo.ocx" )
      RegisterServer( "Codejock.CommandBars.v13.0.0.Demo.ocx" )
   endif   

   DEFINE WINDOW oWnd TITLE "Visual RibbonBar"

   @ 0, 0 ACTIVEX oAct PROGID "Codejock.CommandBarsFrame.13.0.0" OF oWnd SIZE 0, 0

   oAct:bOnEvent = { | cEvent, aParams | RibbonBarEvent( cEvent, aParams ) }

   oAct:Do( "AttachToWindow", oWnd:hWnd )

   oIcons = oAct:Do( "icons" )

   oRb = oAct:Do( "AddRibbonBar", "fwh" )

   oMenu = oRb:Controls:Add( 2, 0, "Menu" )
   oMenu:Flags = xtpFlagRightAlign

   oTabs = oMenu:CommandBar:Controls:Add( 2, 0, "Tabs" )
   oTabs:CommandBar:Controls:Add( 1, ID_ADDTAB, "Add" )

   oGroups = oMenu:CommandBar:Controls:Add( 2, 0, "Groups" )
   oGroups:CommandBar:Controls:Add( 1, ID_ADDGROUP, "Add" )

   oControls = oMenu:CommandBar:Controls:Add( 2, 0, "Controls" )
   oControls:CommandBar:Controls:Add( 1, ID_ADDBUTTON, "Add Button" )

   oImages = oMenu:CommandBar:Controls:Add( 2, 0, "Images" )
   oImages:CommandBar:Controls:Add( 1, ID_ADDIMAGE, "Load Image" )

   ACTIVATE WINDOW oWnd

return nil

function RibbonBarEvent( cEvent, aParams )

   local oControl, oTab, oGroup, oItem, cBmpFile 

   do case
      case cEvent == "Execute"
           
           oControl = aParams[ 1 ]
           
           do case
              case oControl:Id == ID_ADDTAB
                   oControl = oRb:InsertTab( oRb:TabCount + 1, "Tab " + AllTrim( Str( oRb:TabCount + 1 ) ) )
                   oControl:Id = oRb:TabCount
                   oControl:Selected = .T.

              case oControl:Id == ID_ADDGROUP
                   if oRb:TabCount > 0
                      oRb:SelectedTab:Groups:AddGroup( "Group " + AllTrim( Str( oRb:SelectedTab:Groups:GroupCount + 1 ) ),;
                                             ( oRb:SelectedTab:Index * 10 ) + oRb:SelectedTab:Groups:GroupCount + 1 )
                   endif   

              case oControl:Id == ID_ADDBUTTON
                   if oRb:TabCount == 0
                      oControl = oRb:InsertTab( oRb:TabCount + 1, "Tab " + AllTrim( Str( oRb:TabCount + 1 ) ) ) 
                      oControl:Id = oRb:TabCount
                      oControl:Selected = .T.
                   endif
                   if oRb:SelectedTab:Groups:GroupCount == 0
                      oRb:SelectedTab:Groups:AddGroup( "Group " + AllTrim( Str( oRb:SelectedTab:Groups:GroupCount + 1 ) ),;
                                             ( oRb:SelectedTab:Index * 10 ) + oRb:SelectedTab:Groups:GroupCount + 1 )
                   endif   
                   if oRb:SelectedTab:Groups:GroupCount > 0
                      oGroup = oRb:FindGroup( ( oRb:SelectedTab:Index * 10 ) + oRb:SelectedTab:Groups:GroupCount )
                      oItem = oGroup:Add( xtpControlButton, 1, nil )
                      oItem:Caption = "Button " + AllTrim( Str( oGroup:Count ) )
                   endif   

              case oControl:Id = ID_ADDIMAGE
                   cBmpFile = cGetFile( "*.bmp", "Please select a BMP file" ) 
                   if File( cBmpFile )
                      MsgInfo( oIcons:Count + 1 )
                      oIcons:LoadBitmap( cBmpFile, oIcons:Count + 1, xtpImageNormal )
                   endif   
                   
              otherwise
                   if ! Empty( oControl:Caption )
                      ControlInspect( oControl )     
                   endif   

           endcase        
   endcase
   
return nil     

function ControlInspect( oControl )

   local oDlg, cCaption := PadR( oControl:Caption, 30 )
   local cTabCaption := PadR( oRb:SelectedTab:Caption, 30 )
   local cGrpCaption := PadR( oControl:RibbonGroup:Caption, 30 )
   
   DEFINE DIALOG oDlg TITLE "Control Properties" SIZE 300, 300
   
   @ 0.9, 1 SAY "Caption:"
   
   @ 1,  4  GET cCaption VALID ( oControl:Caption := AllTrim( cCaption ), .T. )
   
   @ 1.9, 1 SAY "Width:"
   
   @ 2.2, 4 GET oControl:Width SIZE 25, 12

   @ 1.9, 12 SAY "Height:"
   
   @ 2.2, 12 GET oControl:Height SIZE 25, 12

   @ 2.9, 1 SAY "Icon Id:"
   
   @ 3.4, 4 GET oControl:IconId SIZE 25, 12

   @ 4.9, 1 SAY "Tab caption:"
   
   @ 5.6, 5.3 GET cTabCaption VALID ( oRb:SelectedTab:Caption := AllTrim( cTabCaption ), .T. ) SIZE 100, 12

   @ 5.7, 1 SAY "Group caption:"
   
   @ 6.6, 5.3 GET cGrpCaption VALID ( oControl:RibbonGroup:Caption := AllTrim( cGrpCaption ), oRb:RedrawBar(), .T. ) SIZE 100, 12

   @ 7, 10 BUTTON "Ok" ACTION oDlg:End()
   
   ACTIVATE DIALOG oDlg CENTERED
   
return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: Clase TActiveX mejorada y RibbonBar más fácil
Posted: Wed Apr 08, 2009 12:05 AM
Hola Antonio,

Ya encaramelados con Codejock, podrías darme alguna pista de cómo usar TASKPANEL de Codejock. Le doy por todos los lados, y aunque no me sale error no pinta nada. Tengo FWH 8.07

Un abrazo,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Clase TActiveX mejorada y RibbonBar más fácil
Posted: Wed Apr 08, 2009 12:25 AM

Carlos,

Ni sabia que existiese :-)

Como la usas ? Pon algunos ejemplos que podamos probar

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: Clase TActiveX mejorada y RibbonBar más fácil
Posted: Wed Apr 08, 2009 12:37 AM
Antonio,

Code (fw): Select all Collapse
#include "FiveWin.ch"

function Main()

   local oWnd
   local oTaskP, oGrps
   LOCAL oMenu

   MENU oMenu
   ENDMENU

   DEFINE WINDOW oWnd TITLE "FWH Support Codejock ActiveX" MENU oMenu // MDI

   oTaskP := TActiveX():New( oWnd, "Codejock.TaskPanel.12.1.1", 0, 0, 0, 0 )

    oGrps := oTaskP:Do( "Visisble",.T.)
    oGrps := oTaskP:Do( "Enable",.T.)
    oGrps := oTaskP:Do( "Expandable",.T.)
    oGrps := oTaskP:Do( "Groups")

      oItGr1 := oGrps:Add(0,"Uno")
       oItGr1:Caption := "Dificil"
       oItGr1:Special := .T.
         xxx := oItGr1:Items:Add(1,"Uno",1,1)
         oItGr1:Items:Add(1,"Uno",1,2)

MsgInfo(ValType(xxx))

       oItGr2 := oGrps:Add(1,"Dos")
       oItGr3 := oGrps:Add(2,"Tres")

   ACTIVATE WINDOW oWnd

return nil

Saludos,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: Clase TActiveX mejorada y RibbonBar más fácil
Posted: Wed Apr 08, 2009 12:40 AM

También he probado SKINFRAMEWORK, inclusive la combiné con RIBBONBAR, y funciona perfecto !!! en XP y en vista

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: Clase TActiveX mejorada y RibbonBar más fácil
Posted: Wed Apr 08, 2009 12:48 AM

Realmente Codejock es excepcional. El único problema es que su manual es super difícil de enterder para los que no manejamos Visual Basic.

Si nos dieras una buena guía de cómo manejar los objetos en esta OCX estaríamos hechos en cuanto a mejorar sensiblemente la presentación y diseño de nuestras aplicaciones, y, de esta forma, lograrías una excelente dupleta entra FiveWin y Codejock en beneficio de la comunidad fivewinera.

Saludos,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Clase TActiveX mejorada y RibbonBar más fácil
Posted: Wed Apr 08, 2009 08:58 AM

Carlos,

Yo ni siquiera he mirado el manual :-)

Desde Microsoft Word, abres VBA (Visual Basic for Applications) y tiene un inspector de classes. Y ahi puedes ir viendo datos, metodos y eventos. Es bastante intuitivo :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Clase TActiveX mejorada y RibbonBar más fácil
Posted: Wed Apr 08, 2009 09:36 AM

Carlos,

Mira a ver si soporta este método:

oActiveX:Do( "AttachToWindow", oWnd:hWnd )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 344
Joined: Tue Oct 11, 2005 11:33 AM
Re: Clase TActiveX mejorada y RibbonBar más fácil
Posted: Wed Apr 08, 2009 12:24 PM

Antonio,

Seria possível incluir estas mudanças activex na versão de 9.01 ?

Obrigado, Regards, Saludos



Rossine.



Harbour and Harbour++
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: Clase TActiveX mejorada y RibbonBar más fácil
Posted: Wed Apr 08, 2009 03:59 PM

Antonio,

Si soporta oActiveX:Do( "AttachToWindow", oWnd:hWnd ), pero igual no pinta nada :(

Vale la pena que veas el manual "SymbolReference.chm".

He revisado con VBA, pero igual, no encuentro por dónde hacerla funcionar, me quedó grande :oops:

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***