Folder no muestra la dialog

Folder no muestra la dialog

Postby jose_murugosa » Wed Aug 16, 2017 11:18 am

Supongo que debe ser una tontería pero, creo que mi neurona caducó...
No logro que se presente la dialog en el folder

Código de la dialog:

Test.prg

Code: Select all  Expand view

#include "Fivewin.ch"
#include "common.ch"

STATIC oCn

FUNCTION Main()
    LOCAL odlg
   
    LOCAL id:="100", oGet, oSay, oFont, oFld, oBrush
   
        DEFINE DIALOG odlg TITLE "  " SIZE 1110,660
            @ 1, 10 SAY oSay PROMPT "Cliente:" OF odlg FONT oFont
            @ 1.25, 18 GET oGet VAR id SIZE 50,12 OF odlg FONT oFont READONLY UPDATE    //id se debe reemplazar por la variable del rowset
            @ 2, 1 FOLDER oFld ITEMS "Datos" DIALOGS "DLG_CLIENTE" OF odlg SIZE 545,294 ADJUST FONT oFont
        ACTIVATE DIALOG odlg CENTER
RETURN nil
 


la dialog está en un RC que compilo con este sencillo prg

Recurso:

Test.rc

Code: Select all  Expand view


#include "C:\bcc7\include\windows\sdk\windows.h"
#include "C:\bcc7\include\windows\sdk\commctrl.h"
#include "C:\bcc7\include\windows\sdk\richedit.h"
#include "resource.h"
//
// Dialog resources
//
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
DLG_CLIENTES DIALOG 0, 0, 545, 294
STYLE DS_3DLOOK | DS_CENTER | DS_SHELLFONT | WS_VISIBLE | WS_CHILDWINDOW
FONT 8, "Ms Shell Dlg"
{
    LTEXT           "Muestra de Texto para probar como se comporta", 0, 197, 75, 154, 9, SS_LEFT, WS_EX_LEFT
    PUSHBUTTON      "Button", 0, 152, 121, 291, 131, 0, WS_EX_LEFT
}

 


Compilo y no muestra la dialog (he tratado de simplificar el ejemplo al máximo)

Aprecio que alguien pueda despabilarme :)
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
jose_murugosa
 
Posts: 1138
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Folder no muestra la dialog

Postby leandro » Wed Aug 16, 2017 3:26 pm

Creo que si lo haces desde recursos debes definir los folders de la siguiente manera:

testfld2.prg
Code: Select all  Expand view

// Two folders at a time! Wow!

// New, much, much simpler!!!

#include "FiveWin.ch"
#include "Folder.ch"

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oFld1, oFld2
   local cItem

   SET _3DLOOK ON

   DEFINE DIALOG oDlg RESOURCE "Test"

   REDEFINE FOLDER oFld1 ID 110 OF oDlg ;
      PROMPT "&Clipper", "&and", "&Windows", "&Magic" ;
      DIALOGS "Sub1", "Sub2"

   REDEFINE COMBOBOX cItem ITEMS { "One", "Two", "Three" } ;
      ID 105 OF oFld1:aDialogs[ 1 ]

   REDEFINE BUTTON ID 110 OF oFld1:aDialogs[ 1 ] ;   // Redefining a child
      ACTION MsgInfo( "First Page" )                // control !!!

   REDEFINE BUTTON ID 104 OF oFld1:aDialogs[ 2 ] ;   // Redefining a child
      ACTION MsgInfo( "Second Page" )               // control !!!

   REDEFINE FOLDER oFld2 ID 120 OF oDlg ;
      PROMPT "&The", "&beauty", "&and power", "&of xBase" ;
      DIALOGS "The", "Beauty"

   oDlg:aControls[ 2 ]:aDialogs[ 1 ]:bRClicked = ;
       { || MsgInfo( oDlg:aControls[ 2 ]:aDialogs[ 1 ]:hWnd ) }

   ACTIVATE DIALOG oDlg CENTERED

return nil


procedure AppSys  // XBase++ requirement

return

//----------------------------------------------------------------------------//
 


Cuando es desde codigo de la siguiente manera

testfld3.prg
Code: Select all  Expand view

// Dinamically building a folder ontop of a Dinamic DialogBox

#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oFld

   DEFINE DIALOG oDlg TITLE "FiveWin Dynamic folders" ;
      FROM 5, 5 TO 20, 50 COLOR "N/G"

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

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

   ACTIVATE DIALOG oDlg CENTERED

return nil




//----------------------------------------------------------------------------//

function Another()

   local oWnd, oFld

   DEFINE WINDOW oWnd TITLE "FiveWin Dynamic folders" ;
      FROM 5, 5 TO 20, 50 COLOR "N/G"

   @ 0.5, 1 FOLDER oFld PROMPT "&xBase", "&And OOP", "&Power" ;
      OF oWnd SIZE 260, 180
     
   oFld:SetColor( "N/G" )

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

   ACTIVATE WINDOW oWnd

return nil

//----------------------------------------------------------------------------//

 


Espero te sirva
Saludos
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1480
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Folder no muestra la dialog

Postby cnavarro » Wed Aug 16, 2017 3:39 pm

También has de tener en cuenta que el nombre del diálogo en el PRG no coincide con el del recurso


DLG_CLIENTES DIALOG 0, 0, 545, 294



@ 2, 1 FOLDER oFld ITEMS "Datos" DIALOGS "DLG_CLIENTE" OF odlg SIZE 545,294 ADJUST FONT oFont
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
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Folder no muestra la dialog

Postby jose_murugosa » Wed Aug 16, 2017 3:55 pm

cnavarro wrote:También has de tener en cuenta que el nombre del diálogo en el PRG no coincide con el del recurso


DLG_CLIENTES DIALOG 0, 0, 545, 294



@ 2, 1 FOLDER oFld ITEMS "Datos" DIALOGS "DLG_CLIENTE" OF odlg SIZE 545,294 ADJUST FONT oFont



Leandro, Cristóbal, GRACIAS !!!

Corregiendo el nombre del recurso el problema persiste.

El tema es así, la dialog principal con un get, un say y un folder, la creo desde código, DLG_CLIENTES es la Dialog que pongo en la pestaña de ese folder y está en el RC que compilo y enlazo con el exe.

Quizá sea por eso que esté teniendo problemas, siempre hago todo desde recursos.

En este caso quise hacerlo así porque la llamada a la dialog "madre" forma parte de una clase que estoy creando y no quiero que requiera de un recurso para abrirse ( minimicé el código a este pequeño ejemplo que reproduce el error ), corrigiendo el nombre del recurso, verán que de todos modos el error persiste y la dialog DLG_CLIENTES de la página del folder no se muestra.

Muchas gracias por vuestros mensajes y ayuda :)
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
jose_murugosa
 
Posts: 1138
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Folder no muestra la dialog

Postby cnavarro » Wed Aug 16, 2017 7:49 pm

Jose
Creo que el problema puede venir en que estás utilizando cuadros de diálogo en recursos, sin que el forlder ( el control ) también esté definido como control en el rc
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
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Folder no muestra la dialog

Postby jose_murugosa » Wed Aug 16, 2017 8:00 pm

cnavarro wrote:Jose
Creo que el problema puede venir en que estás utilizando cuadros de diálogo en recursos, sin que el forlder ( el control ) también esté definido como control en el rc


Gracias Cristóbal,

Si, estaba sospechando eso precisamente. la verdad no se como hacer lo que quiero ahora....

Tendré que quemar las neuronas en otra dirección.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
jose_murugosa
 
Posts: 1138
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Folder no muestra la dialog

Postby leandro » Wed Aug 16, 2017 8:22 pm

Creo que tienes que dibujar el dialogo y el folder desde código
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1480
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Folder no muestra la dialog

Postby jose_murugosa » Thu Aug 17, 2017 9:53 am

Gracias Leandro,

Si o eso o una dll para adjuntar con la clase :( cualquiera de las dos alternativas no me gusta una por tener que adjuntar una dll y la otra porque precisamente quería que el usuario pudiera utilizar folders de codigo o de RCs pero bueno, habrá que ver que hacer.

Si no queda otra tendré que tomar por una de estas opciones.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
jose_murugosa
 
Posts: 1138
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Folder no muestra la dialog

Postby cnavarro » Thu Aug 17, 2017 10:08 am

Jose, en el metodo New de TFolder, prueba a cambiar este codigo

OJO: no está probado, o si tendría otras consecuencias, lo he hecho al vuelo

Code: Select all  Expand view

.../...
   for n = 1 to Len( ::aDialogs )
      //Esto
      if ValType( ::aDialogs[ n ] ) = "C"
      DEFINE DIALOG oDlg OF Self RESOURCE ::aDialogs[ n ] ;
         COLOR nClrFore, nClrBack FONT Self:oFont ;
         HELPID if(len(::aHelps) >= n , ::aHelps[n] , NIL)
      else
      DEFINE DIALOG oDlg OF Self STYLE WS_CHILD  ;
         FROM 0, 0 TO ::nHeight() - ::nFdHeight - 5, ::nWidth() - 6 PIXEL ;
         FONT Self:oFont ;
         HELPID if(len(::aHelps) >= n , ::aHelps[n] , NIL)
      endif
      ::aDialogs[ n ] = oDlg
      oDlg:cVarName = "Page" + AllTrim( Str( n ) )
   next

   if ! Empty( oWnd:hWnd )
      ::Default()
   endif
.../...
 
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
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Folder no muestra la dialog

Postby jose_murugosa » Thu Aug 17, 2017 2:48 pm

Gracias nuevamente Cristóbal,
haré los cambios,
pruebo y te comento :)
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
jose_murugosa
 
Posts: 1138
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Folder no muestra la dialog

Postby jose_murugosa » Fri Aug 18, 2017 2:22 am

Cristóbal,

Anduvo maravillosamente!!, voy a ver si no hay comportamientos indeseados en otras folders de mis aplicaciones, pero si no los hay, diría que sería bueno incorporar este cambio en la clase folder para futuro, a fin de que puedan colocarse dialogs de recursos en una folder definida por código.

Gracias mil por tu ayuda, te tendré al tanto de las pruebas que realice mañana.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
jose_murugosa
 
Posts: 1138
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Folder no muestra la dialog

Postby jose_murugosa » Fri Aug 18, 2017 6:14 pm

Hasta el momento sin problemas, en esta clase ni en el soft que tengo en producción.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
jose_murugosa
 
Posts: 1138
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 10 guests