RibbonBar en Dialog.... How to ??

RibbonBar en Dialog.... How to ??

Postby Raymundo Islas M. » Sun Apr 25, 2010 12:19 am

Masters Antonio/Daniel,

Necesito una vez mas de su ayuda en lo siguiente :

Tengo un Folder que llama a una funcion para armar un Ribbon :

Code: Select all  Expand view

oMainModsFldr:aDialogs[6]:bStart := { || ShwCatUsrMenu( oMainModsFldr:aDialogs[6] ) }


Function ShwCatUsrMenu( oDlgUsr )
LOCAL oUsrsRBar, aGrpsRB[5], aBtnsRB[10]

DEFINE RIBBONBAR oUsrsRBar WINDOW oDlgUsr ;
    PROMPT PadC( "Opciones Principales del Modulo", 50 ) ;
    HEIGHT 69 TOPMARGIN 18

    oUsrsRBar:nHeightFld := 15
    oUsrsRBar:nGroupSeparation := 2

    ADD GROUP aGrpsRB[ 1] RIBBON oUsrsRBar TO OPTION 1 PROMPT "Agregar Usuario"    WIDTH 110
        @ 03, 03 ADD BUTTON aBtnsRB[1] GROUP aGrpsRB[1] ;   //BITMAP "..\bitmaps\32x32\users.bmp" ;
        SIZE 105, 25 PROMPT " " ACTION msginfo("Agregar")
    ADD GROUP aGrpsRB[ 2] RIBBON oUsrsRBar TO OPTION 2 PROMPT "Desactivar Usuario" WIDTH 110
        @ 03, 03 ADD BUTTON aBtnsRB[2] GROUP aGrpsRB[2] ;
        SIZE 105, 25 PROMPT " " ACTION msginfo("Desactivar")
    ADD GROUP aGrpsRB[ 3] RIBBON oUsrsRBar TO OPTION 3 PROMPT "Eliminar Usuario"   WIDTH 110
        @ 03, 03 ADD BUTTON aBtnsRB[3] GROUP aGrpsRB[3] ;
        SIZE 105, 25 PROMPT " " ACTION msginfo("Eliminar")

Return NIL
*-----*
 


Y recibo el mensaje que no es soportada por TDIALOG, ahora, ya vi los ejemplos contenidos que hacen uso de Dialogs, pero solo pintan los grupos y/o botones solos, no estan contenidos en ningun tipo de "pestaña".
Como debo hacerlo para poner un RibbonBar en un dialogo ???

PS : NO puedo cambiar el Dialogo a Ventana, ya que es una app casi terminada que me significaria muchos....muchisimos cambios en general.

Gracias y Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: RibbonBar en Dialog.... How to ??

Postby Daniel Garcia-Gil » Sun Apr 25, 2010 12:31 am

Saludos

la ribbon no esta soportada en los dialgos

pq no puedes usar una WINDOW? quieres adaptar la ribbon a todos los dialogos, la ribbon es uan especie de "menu" para ofrecer una estetica diferente a los sistemas, de hecho los programas que usan ribbon no usan menu, debes pensar que la misma esta diseñada pensando en esa funcionalidad
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: RibbonBar en Dialog.... How to ??

Postby Raymundo Islas M. » Sun Apr 25, 2010 12:48 am

Daniel,

Totalmente de acuerdo contigo.

Uso la Ribbon en vez de algun menu, y funciona perfectamente.
La app en cuestion la tengo con el control Ribbon de la difunta CANAL5 que adquiri hace algunos años atras y todo anda muy bien.

Debido a que Paco, hasta donde se, ya NO da soporte a sus controles para FWH desde hace un buen rato y obviamente a que ya estaba un poco desactualizada en FWH decidi actualizarme, por lo que necesito aplicar la clase para sustituir la anterior.

La ventana si la tengo en la app, solo que es la contenedora de un dialogo, en el cual tengo ese folder. Que es el mismo donde tengo actualmente la Ribbon.

Alguna sugerencia ? idea ?.... algo ?


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: RibbonBar en Dialog.... How to ??

Postby Daniel Garcia-Gil » Sun Apr 25, 2010 1:36 am

Raymundo...


disculpa realmente no entiendo, si podrias exponer un PRG ejemplo de lo que quieres o lo que intentas, seguro seria mejor
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: RibbonBar en Dialog.... How to ??

Postby Raymundo Islas M. » Sun Apr 25, 2010 2:42 am

Daniel,

Espero poder ser capaz de explicarlo, ya que a veces ni yo lo entiendo :P

Antes de continuar, te comento que yo nunca he usado para nada el modo de programacion por codigo, siempre ha sido por recursos.

La app en cuestion, la particione, digamos en 5 partes : A, B, C, D, E Que para mi son "Modulos".
Cada modulo tiene varias "Secciones" diferentes entre si y cada seccion tiene opciones diferentes, todas diferentes entre si.

Ahora, cada seccion tiene un menu de opciones propio, y lo que hice ( ya lo tengo funcionando desde hace un buuuuen rato ) es que cada "Seccion" tenga su propio RibbonBar propio para las opciones que requiera.

Asi que en sintesis, con la ayuda de Folders, Pages y RibbonBars puedo accesar a 5 diferentes RibbonBars con diferentes opciones cada uno, en la mismisima pantalla principal !!

Como te comento, todo esto ya esta hecho, lo unico que deseo es desechar el control/clase anterior y utilizar el nativo de FWH.

Claro, el gran problema para lograrlo, es que lo tengo elaborado con Dialogos.

Estuve checando los ejemplos y lo unico que puedo hacer con Dialogos es poner botones : REDEFINE RBBTN ID 100 .....
Seguire buscando alguna solucion o parche temporal, ya que me es imposible cambiar a Windows todo lo hecho hasta ahora solo para poner el Ribbon.

Si se te ocurre algo, cualquier idea/sugerencia es bienvenida.


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: RibbonBar en Dialog.... How to ??

Postby Antonio Linares » Sun Apr 25, 2010 8:27 am

Raymundo,

Puedes crear las RibbonBars desde código desde la claúsula ON INIT de los diálogos:
Code: Select all  Expand view

ACTIVATE DIALOG oDlg ON INIT CreaRibbonBar1( oDlg )
...
function CreaRibbonBar1( oDlg )

   local oRb1

   DEFINE RIBBONBAR oRb1 WINDOW oDlg ...
   ...
return nil
 
regards, saludos

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

Re: RibbonBar en Dialog.... How to ??

Postby Daniel Garcia-Gil » Sun Apr 25, 2010 11:14 am

Raymundo...

Es necesario cambiar la clase, pero son 2 pequeños cambios solamente

en el METHOD New(), comenta estas lineas

Code: Select all  Expand view
  if !( oWnd:ClassName() $ "TWINDOW,TMDIFRAME,TMDICHILD" )
      MsgAlert( "Not Supported for " + oWnd:ClassName(), "TRibbonBar Class" )
      return nil
   endif


Code: Select all  Expand view
SetWndDefault( oWnd )


ahora hay que estar pendiente que los calculos de coordenadas, en los dialogos y window son diferentes, por eso necesitaras asignar el doble del los tamaños en los dialogos para que se vean similares a las window (HEIGHT 140 TOPMARGIN 36, MIRA EL EJEMPLO), por ultimo le haremos un simple MOVE para ajustarlo a todo el ancho del dialogo


Code: Select all  Expand view

#include "fivewin.ch"
#include "ribbon.ch"


FUNCTION Main()

  LOCAL oDlg

  DEFINE DIALOG oDlg SIZE 600, 400 PIXEL
 
  ACTIVATE DIALOG oDlg CENTERED;
           ON INIT CreateRibbon( oDlg )
 
RETURN NIL


FUNCTION CreateRibbon( oDlg )
   LOCAL oRib

   DEFINE RIBBONBAR oRib WINDOW oDlg ;
    PROMPT "Test", "test2", "test3";
    HEIGHT 140 TOPMARGIN 36
   
    oRib:Move( 0, 0, oDlg:nWidth, oRib:nHeight )

RETURN NIL
 


Image
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: RibbonBar en Dialog.... How to ??

Postby Raymundo Islas M. » Sun Apr 25, 2010 3:22 pm

Masters Antonio y Daniel,

Excelente !!!

Ya puedo accesarlos con los ajustes indicados.

Muchisimas Gracias a ambos.


Saludos

PS : En estos dias seguire molestandolos con algunas otras preguntas, debido a que estoy cambiando algunos controles/clases de terceros por los nativos.
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: RibbonBar en Dialog.... How to ??

Postby Raymundo Islas M. » Mon Apr 26, 2010 4:55 pm

Antonio/Daniel,

Los Ribbons estan funcionando OK pero al momento de querer hacer uso del ON CHANGE no hace nada, ya lo intente tambien con bChange y nop.

Code: Select all  Expand view

DEFINE RIBBONBAR oPosRBar WINDOW oPOSDlg ;
    PROMPT PadC( "Opciones Principales", 50 ), ;
        PadC( "Operaciones Especiales", 50 ), ;
        PadC( "Otras Operaciones", 50 ) ;
        ON CHANGE oModPOSPgs:SetOption( aOpts2Sel[oPosRBar:nOption] ) ;
    HEIGHT 69 TOPMARGIN 18
---------
oPosRBar:bChange := { || oModPOSPgs:SetOption( aOpts2Sel[oPosRBar:nOption] ) }
 


Ninguna de las 2 opciones "dispara" la accion de cambiar de pagina.


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: RibbonBar en Dialog.... How to ??

Postby Daniel Garcia-Gil » Mon Apr 26, 2010 5:16 pm

Raymundo


A pesar de estar la opcion en el comando, no esta incluida en la clase esa caracteristica, explicare como hacer el cambio, pero para la proxima version de fivewin estara ya incluida...
gracias por la informacion

METHOD New()
BUSCA ESTA LINEA:
Code: Select all  Expand view
  ::bPaintAcc     = {| hDC | ::PaintAccTabs( hDC ) }

AGREGA DESPUES
Code: Select all  Expand view
  ::bAction    = bAction


METHOD SetOption()
BUSCA ESTA LINEA:
Code: Select all  Expand view
     ::Refresh()

AGREGA DESPUES
Code: Select all  Expand view
     if ! Empty( ::bAction )
         Eval( ::bAction, nOption, nOldOption )
      endif


con estos simples cambios deberia funcionarte
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: RibbonBar en Dialog.... How to ??

Postby Raymundo Islas M. » Mon Apr 26, 2010 6:02 pm

Daniel,

Muchas gracias por tan pronta respuesta y solucion.

Funciona Perfecto !!

Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: RibbonBar en Dialog.... How to ??

Postby Otto » Mon Apr 26, 2010 6:21 pm

Daniel,
do you plan to insert the changes and a sample into FWH 10.4?
Thanks in advance
Otto
********************************************************************
mod harbour - Vamos a la conquista de la Web
modharbour.org
https://www.facebook.com/groups/modharbour.club
********************************************************************
User avatar
Otto
 
Posts: 6332
Joined: Fri Oct 07, 2005 7:07 pm

Re: RibbonBar en Dialog.... How to ??

Postby Daniel Garcia-Gil » Mon Apr 26, 2010 7:03 pm

Otto wrote:Daniel,
do you plan to insert the changes and a sample into FWH 10.4?
Thanks in advance
Otto


Yes, is already included in next fwh version ( 10.4 )
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: RibbonBar en Dialog.... How to ??

Postby Raymundo Islas M. » Mon Apr 26, 2010 9:27 pm

Daniel,

Aprovechando el tema, como le hago para usar la TTitle desde recursos ?

Ya le intente de varias formas y nop, no se deja.


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: RibbonBar en Dialog.... How to ??

Postby Daniel Garcia-Gil » Mon Apr 26, 2010 10:06 pm

Raymundo...

mira el TTITLE.CH para que tengas una idea, recuerda que en el recurso debes crear el control tipo "CUSTOM" y en CLASS NAME colocar "TTITLE"

si no te funciona sugiero coloque sel codigo que no te funciona y la linea de como creas el control en el recurso
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 65 guests