FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour COLOCAR BUTTONBAR EN UNA oFldx:aDialogs[n]
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
COLOCAR BUTTONBAR EN UNA oFldx:aDialogs[n]
Posted: Thu Feb 25, 2016 10:48 PM
Saludos, no se si alguien ya lo pregunto, llevo rato buscando el tema y no consigo algo relacionado, para no tener que crear varios botones en la pestaña del folder , lo que me gustaria si es posible, es colocar una BUTTOBAR en los Dialogos de un Folderex, ademas los botones varian dependiendo de la pestaña, lo intente asi...agradezo sugerencias y ayuda, gracias...saludos... :-)

Code (fw): Select all Collapse
   DEFINE BUTTONBAR aBar[1] SIZE 60, 60 OF oFldx:aDialogs[3] 2010

   aBar[1]:bRClicked := {|| NIL }

   DEFINE BUTTON aBtn[2] OF aBar[1] NOBORDER ; // IMPRIMIR
      RESOURCE "print32" ;
      PROMPT "Imprimir" ;
      TOOLTIP "Imprmir Ficha" ;
      MESSAGE "Imprime Ficha Miembro de Iglesia" ;
      ACTION ( Alert("imprimir listado...en desarrollo") )

   SET MESSAGE OF oFldx:aDialogs[3] TO ""


pero obtengo el siguiente error..

Code (fw): Select all Collapse
Application
===========
   Path and name: D:\sisinge\programandolos\NOM_ROBLES\nom_robles.exe (32 bits)
   Size: 6,929,408 bytes
   Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20141106)
   FiveWin  Version: FWHX 15.02
   Windows version: 6.1, Build 7601 Service Pack 1

   Time from start: 0 hours 0 mins 1 secs 
   Error occurred at: 25/02/2016, 18:21:31
   Error description: Error FiveWin/6  Cannot create window or control: 
Class: TBAR
Caption: 
System Error: No se puede crear una ventana secundaria de primer nivel.


Stack Calls
===========
   Called from: .\source\classes\WINDOW.PRG => WNDCREATEERROR( 822 )
   Called from: .\source\classes\WINDOW.PRG => TBAR:CREATE( 803 )
   Called from: .\source\classes\BAR.PRG => TBAR:NEW( 147 )
   Called from: ma_personal.prg => DAT_PERSONAL( 452 )
   Called from: ma_personal.prg => MA_PERSONAL( 27 )
   Called from: nom_robles.prg => (b)MAIN( 81 )
   Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE( 1046 )
   Called from: nom_robles.prg => MAIN( 81 )
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: COLOCAR BUTTONBAR EN UNA oFldx:aDialogs[n]
Posted: Fri Feb 26, 2016 01:15 AM
Jose Luis, yo tengo en FivEdit definidas ButtonBar en todos los Dialogs de los FolderEx sin ningun problema, espero te sirva de algo

Code (fw): Select all Collapse
     nPos := 1
     @ 0, 1 FOLDEREX ::oFldL ;
     PROMPTS Upper( "Project" ), Upper( "DataBases" ), Upper( "Recent" ) ; //, "Template" ;
     OF ::oWnd OPTION 1 ; //BOTTOM ;
     TAB HEIGHT ::nHTab ;
     SIZE ::nLeftPos - 3,  nHt + 8;
     PIXEL FONT ::oFontCtrls //NOBORDER

     ::oFldL:SetColor( ::nTextColorL, ::nBackColorL )
     ::oFldL:nFolderHeight  := ::nHTab
     ::oFldL:nRound         := 0
     ::oFldL:aGradSel       := { { 1, CLR_VSTAB, CLR_VSTAB } }
     ::oFldL:aGradUnSel     := { { 1, CLR_VSBAR, CLR_VSBAR } }
     ::oFldL:nSeparator     := 0
     DEFINE BUTTONBAR oBarFl1 SIZE 28, 28 OF ::oFldL:aDialogs[ nPos ] 2013 //NOBORDER
     DEFINE BUTTONBAR oBarFl2 SIZE 28, 28 OF ::oFldL:aDialogs[ ++nPos ] 2013 //NOBORDER
     DEFINE BUTTONBAR oBarFl3 SIZE 28, 28 OF ::oFldL:aDialogs[ ++nPos ] 2013 //NOBORDER
     oBarFl1:bRClicked := { | o | .T. }
     oBarFl2:bRClicked := { | o | .T. }
     oBarFl3:bRClicked := { | o | .T. }
     nPos   := 1
     ::oFldL:aDialogs[ nPos ]:oTop    := oBarFl1
     ::oFldL:aDialogs[ ++nPos ]:oTop  := oBarFl2
     ::oFldL:aDialogs[ ++nPos ]:oTop  := oBarFl3
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: COLOCAR BUTTONBAR EN UNA oFldx:aDialogs[n]
Posted: Fri Feb 26, 2016 04:42 AM
Navarro, gracias por responder rapidamente, he intentado colocar las lineas en diferentes parte y sigue el mismo error, aca anexo algo de estructura de mi codigo, el dlg donde esta el folder tiene una button bar y trabaja todo bien, el problema es cuando lo quiero en el dialog del folder, agradezco la ayuda y si es posible algun sample o decirme donde debo colocarlo en mi codigo, gracias, saludos... :-)

Code (fw): Select all Collapse
PROCEDURE pruebas()

   LOCAL ....

// INICIO DLG
   DEFINE DIALOG oDlg RESOURCE "ROB_FLD_PERSONAL" OF oDatos:oWndPPAL ;
      TITLE oDatos:cTitDlg + " - Ficha de Personal"
// FOLDER EN DLG
   REDEFINE FOLDEREX oFldx ID 401 OF oDlg ;
      PROMPT "Pestaña 1", "Pestaña 2", "Pestaña con ButtorBar" ,;
      BITMAPS "16", "16", "16" ;
      DIALOGS "ROB_PER_DATPER", "ROB_PER_DATLAB", "ROB_PER_VIAJES"

oFldx:nOption(3) // PESTAÑA QUE SE INICIARIA

*   DEFINE BUTTONBAR aBar[1] SIZE 60, 60 OF oFldx:aDialogs[3] 2010
*   oFldx:aDialogs[3]:oTop := aBar[1]

// PESTAÑA-1 - DATOS PERSONALES
   REDEFINE GET aGet[1] VAR aVar[1] ID 4002 OF oFldx:aDialogs[1] ;
      PICTURE "#####" UPDATE READONLY

// PESTAÑA-2 - DATOS LABORALES
   REDEFINE DBCOMBO aGet[22] VAR aVar[22] ID 4032 OF oFldx:aDialogs[2] UPDATE ;
      ITEMS aEmp1 ;
      LIST  aEmp2

// PESTAÑA-3 - DETALLES DE VIAJES
   DEFINE BUTTONBAR aBar[1] SIZE 60, 60 OF oFldx:aDialogs[3] 2010

   aBar[1]:bRClicked := {|| NIL }

   DEFINE BUTTON aBtn[2] OF aBar[1] NOBORDER ;
      RESOURCE "print32" ;
      PROMPT "Imprimir" ;
      TOOLTIP "Imprmir Ficha" ;
      MESSAGE "Imprime" ;
      ACTION ( Alert("imprimir listado...en desarrollo") )

   SET MESSAGE OF oFldx:aDialogs[3] TO ""

   ACTIVATE DIALOG oDlg CENTER ;
      ON INIT ( bar_personal( oDlg, oFldx, lNew, aVar, oBrwPer ) )

RETURN

PROCEDURE bar_personal( oDlg, oFldx, lNew, aVar, oBrwPer )

   LOCAL oBar, aBtn[10]

   DEFINE BUTTONBAR oBar SIZE 60, 60 OF oDlg 2010

   oBar:bRClicked := {|| NIL }

   DEFINE BUTTON aBtn[1] OF oBar NOBORDER ; // IMPRIMIR
      RESOURCE "print32" ;
      PROMPT "Imprimir" ;
      TOOLTIP "Imprmir Ficha" ;
      MESSAGE "Imprimir" ;
      ACTION ( Alert("imprimir...en desarrollo") )

   DEFINE BUTTON aBtn[1] OF oBar NOBORDER ;
      RESOURCE "salir32" ;
      PROMPT "Salir" ;
      ToolTip "Salir y Cerrar Sistema" ;
      MESSAGE "Salir al Menu Principal" ;
      ACTION ( oDlg:END() ) GROUP

   SET MESSAGE OF oDlg TO ""

   oFldx:MOVE( oBar:nHeight + 5, 5 ) // COLOCO FOLDER DEBAJO DE LA BUTTONBAR

RETURN
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: COLOCAR BUTTONBAR EN UNA oFldx:aDialogs[n]
Posted: Fri Feb 26, 2016 06:33 AM

Jose Luis, quizás el problema pueda estar en que estás utilizando un dialogo desde recursos y el buttonbar no
A ver si tienes un pequeño ejemplo y podemos echarle un vistazo
Podrías cambiar ese dialogo por otro definido desde codigo y probarlo

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: COLOCAR BUTTONBAR EN UNA oFldx:aDialogs[n]-RESUELTO
Posted: Fri Feb 26, 2016 04:38 PM
Saludos, Navarro, de la forma en que la haces no me funciono, pero analizando la forma en que agregue la button bar al dlg principal, se me ocurrio hacer lo mismo con las demas barras y funciono, solo las coloque en el INIT del DLG principal y listo, dejo el sample por si alguien lo necesita, funciona para folder y folderex, aunque no es nada del otro mundo, cuando ya se esta resuelto, gracias por tu ayuda, saludos... :-)

Code (fw): Select all Collapse
function prueba()

   local oDlg, oFld, oBar

   DEFINE DIALOG oDlg TITLE "FiveWin Dynamic folders" ;
      FROM 5, 5 TO 20, 50

   @ 0.5, 1 FOLDER oFld PROMPT "&xBase", "&And OOP", "&Power" ;
      OF oDlg SIZE 160, 90

   @ 1, 1 BUTTON "&Hello" OF oFld:aDialogs[1] ;
     ACTION MsgInfo( "Hello world!" )

   ACTIVATE DIALOG oDlg CENTERED ;
      on init barra( oFld, oDlg )

return nil

PROCEDURE bar_fld3( oFld, oDlg ) // BARRA BOTONES PESTAÑA 3

   LOCAL oBar, aBtn[10]

   DEFINE BUTTONBAR oBar SIZE 50, 50 OF oFldx:aDialogs[3] 2010

   oBar:bRClicked := {|| NIL }

   DEFINE BUTTON aBtn[1] OF oBar NOBORDER ; // INICIO
      RESOURCE "azul_inicio32" ;
      PROMPT "Primero" ;
      TOOLTIP "Va al Primer Registro" ;
      MESSAGE "Va al Primer Registro" ;
      ACTION ( Alert("primer registro") ) GROUP

   DEFINE BUTTON aBtn[1] OF oBar NOBORDER ; // FIN
      RESOURCE "azul_fin32" ;
      PROMPT "Ultimo" ;
      TOOLTIP "Va al Ultimo Registro" ;
      MESSAGE "Va al Ultimo Registro" ;
      ACTION ( Alert("ultimo registro") )

   DEFINE BUTTON aBtn[1] OF oBar NOBORDER ; // BUSCAR
      RESOURCE "buscar32" ;
      PROMPT "Buscar" ;
      TOOLTIP "Buscar Registro" ;
      MESSAGE "Buscar un Registro" ;
      ACTION ( Alert("buscar un registro") ) GROUP

   DEFINE BUTTON aBtn[1] OF oBar NOBORDER ; // FILTRAR
      RESOURCE "filtrar32" ;
      PROMPT "Filtrar" ;
      TOOLTIP "Filtrar Registros" ;
      MESSAGE "Filtrar Registros" ;
      ACTION ( Alert("Filtrar Registros") )

   DEFINE BUTTON aBtn[1] OF oBar NOBORDER ; // ORDENAR
      RESOURCE "ordenado32" ;
      PROMPT "Ordenar" ;
      TOOLTIP "Ordenar Registros" ;
      MESSAGE "Ordenar Registros" ;
      ACTION ( Alert("Ordenar Registros") )

   DEFINE BUTTON aBtn[1] OF oBar NOBORDER ; // IMPRIMIR
      RESOURCE "print32" ;
      PROMPT "Imprimir" ;
      TOOLTIP "Imprmir Listado" ;
      MESSAGE "Imprime Listado" ;
      ACTION ( Alert("imprimir ficha...en desarrollo") ) GROUP
//
   SET MESSAGE OF oDlg TO ""

RETURN
Dios no está muerto...



Gracias a mi Dios ante todo!

Continue the discussion