Page 1 of 1

Can't create dialog Box

Posted: Wed Mar 29, 2006 10:10 am
by Biel EA6DD
Al ejecutar mas de una vez la opción del menu, me aparece el mensaje "Can't create dialog Box".
El programa sigue la siguiente estructura, abro una ventana, desde esta ventana on init abre un dialogo con opciones de menu(botones), al pulsar el boton ventas pido la fecha mediante la funcion MsGet, y despues abro otra ventana para visualizar el resultado. La primera vez todo ok, el resto no puede abrir el dialogo de MsgGet.

Code: Select all

# INCLUDE "FwCE.ch"
STATIC oWnd
FUNCTION MAIN()
  //--------DEFINICION DE VARIABLES-------
    LOCAL nOpcSel, oBmp
    PRIVATE oWnd
    DEFINE WINDOW oWnd TITLE 'Crmbl'
    ACTIVATE WINDOW oWnd ;
        ON INIT MnuPri()
RETURN NIL
//------------------
FUNCTION MnuPri()
//------------------
   LOCAL oDlg,oBtnVta,oBtnEnd,dFecha:=Date()
   DEFINE DIALOG oDlg RESOURCE "MNUPRI" OF oWnd
   REDEFINE BUTTON oBtnVta ID 4001 OF oDlg ACTION (IF(MsgGet('Fecha','Fecha',@dFecha),Algo(),nil))
   REDEFINE BUTTON oBtnEnd ID 4006 OF oDlg ACTION (oWnd:END())
   ACTIVATE DIALOG oDlg CENTERED
RETURN NIL
//---------------------
STATIC FUNCTION Algo()
//---------------------
    LOCAL oWnd,oBtn
    DEFINE WINDOW oWnd TITLE "Algo"
    oBtn:=tButton():New(14,01,'&oK',oWnd,{||oWnd:End()},50,20)
    ACTIVATE WINDOW oWnd
RETURN NIL
El fichero RC tal cual sigue.

Code: Select all

#include <windows.h>
#include <commctrl.h>

LANGUAGE LANG_ENGLISH,SUBLANG_ENGLISH_US

MNUPRI DIALOG DISCARDABLE 36, 32, 138, 180
STYLE WS_POPUP|DS_MODALFRAME|WS_SYSMENU|WS_VISIBLE
FONT 8, "System"
BEGIN
  CONTROL "V E N T A S", 4001, "Button", WS_TABSTOP, 12, 28, 48, 16
  CONTROL "S A L I R", 4006, "Button", WS_TABSTOP, 72, 80, 48, 16
 15
END
Gracias anticipadas.

Posted: Wed Mar 29, 2006 10:53 am
by Carles
Biel,

Coge el fichero MsgGet.prg y cambia la linea

Code: Select all

DEFINE DIALOG oDlg FROM 10, 20 TO 18, 59.5 TITLE cTitle
por

Code: Select all

DEFINE DIALOG oDlg FROM 10, 20 TO 18, 59.5 TITLE cTitle OF GetWndDefault()
y prueba. Si no va, prueba cambiar GetWndDefault() por WndMain()

Saludos.
C.

Posted: Wed Mar 29, 2006 1:41 pm
by Biel EA6DD
Gracias Carles,
he añadido msgget.prg al proyecto, y antes de hacer el cambio que sujieres, he compilado.
Sin cambiar nada funciona bien, bueno relativamente, porque los tamaños del dialogo no caben en la pantalla del PPC, parece como si fueran los fuentes de la version para PC.
Visto que funciona bien, he ajustado los tamaños de dialogo y posiciones de los controles y todo a quedado funcional.

Posted: Wed Mar 29, 2006 4:31 pm
by ibersoft
Perdon por la intromision, pero cuando dices

"he añadido msgget.prg al proyecto"

¿ a que te refieres exactamente ?

Una saludo y gracias.

Posted: Wed Mar 29, 2006 4:43 pm
by Antonio Linares
Biel,

MsgGet() ya está incluido en FWPPC (source\function\fwppc.prg). Estás usando el build más reciente de FWPPC ?

Jose, Javier,

En principio no haría falta añadirlo, ya que FWPPC lo proporciona.

Posted: Wed Mar 29, 2006 4:56 pm
by ibersoft
Si pero, cuando dicen lo del "proyecto", es que hay alguna forma de incluir varios "prg" en un mismo exe , o se refieren a incluir el codigo en el archivo ".rc" ?

Posted: Wed Mar 29, 2006 5:19 pm
by Antonio Linares
Jose, Javier,

Sí, claro, puedes usar tantos PRGs como necesites. samples\buildce.bat sólo usa uno, pero para más de uno puedes usar por el make para Microsoft que se encuentra en makes\fwcemake.zip

Posted: Wed Mar 29, 2006 9:10 pm
by Biel EA6DD
Hola Antonio,
si ya se que esta incluido, pero me da el problema que cito en el primer mensaje de este post.
Tras la sujerencia de Carles, he añadido "source\function\fwppc.prg" para realizar _ en el fuente. Pero no ha hecho falta, pues con la version source\function\fwppc.prg me funciona bien, solo he ajustado tamaño del dialogo.
Estoy utilizando la version de marzo 06, no es la ultima pq veo q hoy has publicado una pero es la penultima.

Bueno Jose, Javier, ya os ha contestado el master Antonio, ya sabes tantos prgs como quieras, cambiando el bat de compilacion usando make o alguna otra herramienta. Yo utilizo xMate, lei sobre él aqui en el foro y tras probar otras soluciones, es el que mejor me va, pero para gustos colores.