FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Problema / Bug TWINDOW y controles
Posts: 458
Joined: Tue Mar 14, 2006 07:26 PM
Problema / Bug TWINDOW y controles
Posted: Tue Mar 24, 2015 09:09 AM
Hola,

Estoy teniendo un problema extrañísimo, sé como hacer una chapuza para que funcione, pero no sé de donde viene.

Si escribo esto:

DEFINE WINDOW oWnd MENU buildmenu()
ACTIVATE WINDOW oWnd MAXIMIZED

Y desde una opción del menú, llamo a:

DEFINE DIALOG oDlg RESOURCE "MIDLG"
ACTIVATE DIALOG oDlg

Da error:
Error FiveWin/3 Cannot create Dialog Box:
Resource: MIDLG

Pero si pongo al empezar:

DEFINE WINDOW oWnd MENU buildmenu()
@0,0 BITMAP oBmp2 FILE "" NOBORDER SIZE 0,0 OF oWnd
ACTIVATE WINDOW oWnd MAXIMIZED


Funciona perfectamente!!!!!

El problema es si no se ha definido un control en la ventana, es decir, hasta que no se crea un control en la ventana, no deben de inicializarse algunos valores internos de FWH que se necesitan para poder crear un diálogo desde recursos como el del ejemplo.

¿ Cómo lo soluciono Antonio ?
Un Saludo,

Joaquín Martínez
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Problema / Bug TWINDOW y controles
Posted: Wed Mar 25, 2015 07:11 AM

Joaquín,

Puedes copiar aqui el código del recurso "MIDLG" ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 458
Joined: Tue Mar 14, 2006 07:26 PM
Re: Problema / Bug TWINDOW y controles
Posted: Wed Mar 25, 2015 08:24 AM

Buenos días Antonio,

He puesto "MIDLG", como ejemplo, me pasa con cualquier diálogo desde recursos.

Un Saludo,

Joaquín Martínez
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Problema / Bug TWINDOW y controles
Posted: Wed Mar 25, 2015 09:30 AM

Usas algún control TBitmap desde tus diálogos ?

Que controles usas en los diálogos ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 458
Joined: Tue Mar 14, 2006 07:26 PM
Re: Problema / Bug TWINDOW y controles
Posted: Wed Mar 25, 2015 10:34 AM

Sí, me parece que en todas.

Lo de poner un control TBIPMAP con size 0, para evitar el problema provisionalmente, ha sido por azar, podría haber usado un TSAY por ejemplo.

Un Saludo,

Joaquín Martínez
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Problema / Bug TWINDOW y controles
Posted: Wed Mar 25, 2015 02:19 PM

Si cambias el bitmap por el say ocurre igual ?

Funciona bien ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 458
Joined: Tue Mar 14, 2006 07:26 PM
Re: Problema / Bug TWINDOW y controles
Posted: Wed Mar 25, 2015 04:59 PM

Antonio Increíble,

Con el TSAY sigue fallando, sólo funciona si defino un TBITMAP. ¿ ?

Es decir, ese es el control que no está "CREADO o Registrado" internamente, ¿Por qué ocurre? ¿Cómo evitarlo?

Un Saludo,

Joaquín Martínez
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Problema / Bug TWINDOW y controles
Posted: Wed Mar 25, 2015 05:05 PM

todas las cajas de diálogo fallan ?

Deberían fallar aquellas que tengan un control TBitmap y que no esté redefinido

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 458
Joined: Tue Mar 14, 2006 07:26 PM
Re: Problema / Bug TWINDOW y controles
Posted: Wed Mar 25, 2015 05:16 PM

Cierto,

Estoy casi seguro que sólo son las que llevan un TBitmap. Son muchos diálogos y no he podido probarlos todos.

Un Saludo,

Joaquín Martínez
Posts: 69
Joined: Thu Feb 25, 2010 12:44 PM
Al salir NO CIERRA 3 Dialogos NOWAIT de una Ventana
Posted: Thu Mar 31, 2016 06:17 PM

Después de mucho tiempo con una APP con FW20d de 16 bits y WXP, estamos cambiando la APP a 32 Bits FWH 16.03
Entorno Inicial
WXP
FW20d 16 Bits
DLL con Resource WorkShop de Borland

Entorno Final
Windows 10 63
FWH 16.03 32 Bits
DLL migrada a RC y pasada a]DLL 32 bits con la utilidad \fwh\dll\rc2dll32.bat

Arranco la APP, después de unos cambios cosméticos de unos recursos borland "borbtn" pasados a BTNBMP arranca
Comienzo probando el mantenimiento mas sencillo, no hay nada modificado, es el codigo y recursos original es
Tiene tres dialogos NOWAIT, y al dar al botón de Finalizar oBtnSal OF oDbarra, este se cierra pero permanecen el pantalla
los otros dos , que desaparecen si pulso ESCAPE,

Alguna Ideal de que puede esta pasando ¿?

Mi problema es que no se bien que está pasando, y toda la APP se basa en dialogos NOWAIT

Gracias anticipadas 8-)


Function AbmCon(oWnd)
ccp_codi:=space(3)
ccp_desc:=space(25)
ccp_sign:=space(1)
ccp_tipo:=space(1)

Set deleted on

USE "CONCEP" ALIAS Con SHARED NEW
If !NetErr()
SET INDEX TO "conind01"
Else
Return NIL
EndIf

DEFINE ICON oIconAbm RESOURCE "WorkAreas"
DEFINE Window oWndCon OF oWnd From 0,0 to MaxRow(),MaxCol();
ICON oIconAbm;
COLOR "N/W+";
TITLE OemToAnsi("Fichero De Conceptos");
BORDER NONE NOSYSMENU NOMINIMIZE NOMAXIMIZE
SET MESSAGE OF oWndCon TO "" KEYBOARD DATE CENTERED
Barra() // Dialog 1
Codigo() // Dialog 2
Datos() // Dialog 3
oDDAbmCon:Disable()
oWndCon:SetFocus()
oBtnNew:SetFocus()
ACTIVATE Window oWndCon MAXIMIZED;
ON INIT (oWnd:Disable());
VALID(DbCloseArea("Con"),oWnd:Enable())
Return nil

Static Function Barra()
DEFINE DIALOG oDBarra OF oWndCon RESOURCE "ABM_CONCE_BARRA"
REDEFINE BUTTON oBtnNew ID 101 OF oDbarra ACTION Nueva()
REDEFINE BUTTON oBtnMod ID 102 OF oDbarra ACTION If(!Empty(ccp_codi),Modificar(),oBtnMod:SetFocus())
REDEFINE BUTTON oBtnDel ID 103 OF oDbarra ACTION If(AvisoDel(),Eliminar(),oBtnDel:SetFocus())
REDEFINE BUTTON oBtnBus ID 104 OF oDbarra ACTION (cOpcion:="B",ClearVars(),Cerrar_Opciones(),oDCAbmCon:Enable(),ocp_codi:SetFocus())
REDEFINE BUTTON oBtnSig ID 105 OF oDbarra ACTION Siguiente()
REDEFINE BUTTON oBtnAnt ID 106 OF oDbarra ACTION Anterior()
REDEFINE BUTTON oBtnSal ID 120 OF oDbarra ACTION oWndCon:End()
ACTIVATE DIALOG oDbarra NOWAIT;
VALID (oBtnSal:Click(),.T.)
return nil

Static Function Codigo()
DEFINE DIALOG oDCAbmCon OF oWndCon RESOURCE "ABM_CONCE_CODIGO"
REDEFINE BUTTON oBtnCon ID 802 OF oDCAbmCon ACTION If(HelpCon(),VolHelp(.t.),VolHelp(.f.))
REDEFINE GET ocp_codi VAR ccp_codi ID 801 OF oDCAbmCon VALID Opcion()
ocp_codi:bRclicked:=({||If(HelpCon(),VolHelp(.t.),VolHelp(.f.))})
ACTIVATE DIALOG oDCAbmCon NOWAIT;
VALID (ccp_codi:=space(3),ocp_codi:Refresh(),Abrir_Opciones(),oDCAbmCon:Disable(),oBtnBus:SetFocus(),.F.)
oDCAbmCon:Disable()
Return nil

Static Function Datos()
DEFINE DIALOG oDDAbmCon OF oWndCon RESOURCE "ABM_CONCE_DATOS"
REDEFINE GET ocp_desc VAR ccp_desc ID 802 OF oDDAbmCon
REDEFINE GET ocp_sign VAR ccp_sign ID 803 OF oDDAbmCon VALID Signo()
REDEFINE GET ocp_tipo VAR ccp_tipo ID 804 OF oDDAbmCon VALID Tipo()
REDEFINE BUTTON oBtnSi ID 812 OF oDDAbmCon ACTION Aceptar()
REDEFINE BUTTON oBtnNo ID 813 OF oDDAbmCon ACTION Cancelar()
Cerrar_SiNo()
ACTIVATE DIALOG oDDAbmCon NOWAIT;
Valid (oBtnNo:Click,.F.)
oDDAbmCon:Disable()
return nil

Un saludo

___________________________________________________

La mente es como un paracaídas, solo funciona si se abre

Harbour 3.2.0dev (r1601050904) , Fivewin 16.04
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Problema / Bug TWINDOW y controles
Posted: Thu Mar 31, 2016 07:01 PM
He modificado tu ejemplo asi y aqui funciona bien. Por favor construyélo y comprueba si a ti tambien te funciona bien:

Code (fw): Select all Collapse
#include "FiveWin.ch"

Function Main()

DEFINE Window oWndCon From 0,0 to MaxRow(),MaxCol();
TITLE OemToAnsi("Fichero De Conceptos");
BORDER NONE NOSYSMENU NOMINIMIZE NOMAXIMIZE

SET MESSAGE OF oWndCon TO "" KEYBOARD DATE CENTERED
Barra() // Dialog 1
Codigo() // Dialog 2
Datos() // Dialog 3
ACTIVATE Window oWndCon MAXIMIZED

Return nil

Static Function Barra()
local oBtnSal
DEFINE DIALOG oDBarra OF oWndCon // RESOURCE "ABM_CONCE_BARRA"
@ 2, 2 BUTTON oBtnSal OF oDbarra ACTION oWndCon:End()
ACTIVATE DIALOG oDbarra NOWAIT;
VALID (oBtnSal:Click(),.T.)
return nil

Static Function Codigo()
DEFINE DIALOG oDCAbmCon OF oWndCon // RESOURCE "ABM_CONCE_CODIGO"
ACTIVATE DIALOG oDCAbmCon NOWAIT;
VALID ( oBtnBus:SetFocus(),.F. )
Return nil

Static Function Datos()
DEFINE DIALOG oDDAbmCon OF oWndCon // RESOURCE "ABM_CONCE_DATOS"
// Cerrar_SiNo()
ACTIVATE DIALOG oDDAbmCon NOWAIT;
Valid (oBtnNo:Click,.F.)
return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 69
Joined: Thu Feb 25, 2010 12:44 PM
Re: Problema / Bug TWINDOW y controles
Posted: Fri Apr 01, 2016 05:11 PM
Buenas tardes Antonio, he incorporado este código en el programa , he añadido los recursos de la DLL y así "pelao" funciona, voy a ir incorporando código poco a poco para ver donde puede estar el fallo

Muchas gracias.
...
...
...

CONTINUO las pruebas
He conseguido que funcione
El cambio mas importante es este

Antes
Function AbmCon(oWnd)
ccp_codi:=space(3)
DEFINE Window oWndCon OF oWnd From 0,0 to MaxRow(),MaxCol();
Ahora
Function AbmCon()
ccp_codi:=space(3)
DEFINE Window oWndCon From 0,0 to MaxRow(),MaxCol();

Y LA LLAMADA al programa AbmCon
Antes
REDEFINE BTNBMP RESOURCE "1102" oBtnCon ID 102 OF oDlgMenuP ACTION AbmCon(oWnd)
Ahora
REDEFINE BTNBMP RESOURCE "1102" oBtnCon ID 102 OF oDlgMenuP ACTION AbmCon()

Pregunto :No se conceptualmente es correcto , es por continuar cambiando el resto de programas en la misma línea ¿?

Gracias por todo
Un saludo

___________________________________________________

La mente es como un paracaídas, solo funciona si se abre

Harbour 3.2.0dev (r1601050904) , Fivewin 16.04
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Problema / Bug TWINDOW y controles
Posted: Fri Apr 01, 2016 07:23 PM

Si OF oWnd es nil entonces FWH lo proporciona por defecto

asi que basicamente las dos funcionan bien

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion