Clase TActiveX mejorada y RibbonBar más fácil

Clase TActiveX mejorada y RibbonBar más fácil

Postby Antonio Linares » Tue Apr 07, 2009 7: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: Select all  Expand view

#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
User avatar
Antonio Linares
Site Admin
 
Posts: 41468
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Clase TActiveX mejorada y RibbonBar más fácil

Postby Antonio Linares » Tue Apr 07, 2009 8:26 am

Dinamicamente inspeccionando los controles del RibbonBar:

Image

RibonBar.prg
Code: Select all  Expand view

#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
User avatar
Antonio Linares
Site Admin
 
Posts: 41468
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Clase TActiveX mejorada y RibbonBar más fácil

Postby Antonio Linares » Tue Apr 07, 2009 2:57 pm

Image
Image
Code: Select all  Expand view

#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
User avatar
Antonio Linares
Site Admin
 
Posts: 41468
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Clase TActiveX mejorada y RibbonBar más fácil

Postby Antonio Linares » Tue Apr 07, 2009 3: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
User avatar
Antonio Linares
Site Admin
 
Posts: 41468
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Clase TActiveX mejorada y RibbonBar más fácil

Postby Antonio Linares » Tue Apr 07, 2009 9: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
User avatar
Antonio Linares
Site Admin
 
Posts: 41468
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Clase TActiveX mejorada y RibbonBar más fácil

Postby Antonio Linares » Tue Apr 07, 2009 11:29 pm

Editando el texto del Tab y del Grupo:

Image

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

Code: Select all  Expand view

#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
User avatar
Antonio Linares
Site Admin
 
Posts: 41468
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Clase TActiveX mejorada y RibbonBar más fácil

Postby Cgallegoa » 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-23.10, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
Cgallegoa
 
Posts: 427
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Clase TActiveX mejorada y RibbonBar más fácil

Postby Antonio Linares » 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
User avatar
Antonio Linares
Site Admin
 
Posts: 41468
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Clase TActiveX mejorada y RibbonBar más fácil

Postby Cgallegoa » Wed Apr 08, 2009 12:37 am

Antonio,

Code: Select all  Expand view

#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-23.10, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
Cgallegoa
 
Posts: 427
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Clase TActiveX mejorada y RibbonBar más fácil

Postby Cgallegoa » 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-23.10, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
Cgallegoa
 
Posts: 427
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Clase TActiveX mejorada y RibbonBar más fácil

Postby Cgallegoa » 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-23.10, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
Cgallegoa
 
Posts: 427
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Clase TActiveX mejorada y RibbonBar más fácil

Postby Antonio Linares » Wed Apr 08, 2009 8: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
User avatar
Antonio Linares
Site Admin
 
Posts: 41468
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Clase TActiveX mejorada y RibbonBar más fácil

Postby Antonio Linares » Wed Apr 08, 2009 9:36 am

Carlos,

Mira a ver si soporta este método:

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41468
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Clase TActiveX mejorada y RibbonBar más fácil

Postby Rossine » 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++
Rossine
 
Posts: 344
Joined: Tue Oct 11, 2005 11:33 am

Re: Clase TActiveX mejorada y RibbonBar más fácil

Postby Cgallegoa » Wed Apr 08, 2009 3: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-23.10, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
Cgallegoa
 
Posts: 427
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 152 guests