Page 1 of 2
Problema en el refresco Checkbox (solucionado)
Posted: Thu Jul 11, 2019 5:50 pm
by AngelSalom
Buenas amigos, sigo ajustando detalles tras la actualización a FWH19.05
Me encuentro en que en un diálogo con CheckBox éste no se repinta correctamente si hay un factor externo que cambia su estado (activo a no activo). En este pequeño ejemplo que adjunto se puede observar lo que ocurre. El Checkbox inicialmente desactivado, se activará al seleccionar el 2º radio, se observa cómo borra todo el diálogo desde su posición hacia abajo.

He conseguido aislar el problema en diálogos
transparentes y cuando se incluye en el rc el aspecto xp (windowsxp.manifest). El problema es que tengo todos los diálogos de este modo (transparentes) y no me interesa quitar el manifest, claro.
¿Se trata de un bug de la versión? Cabe decir que con la que usaba anteriormente no había observado este comportamiento.
Aquí el prg y el rc para probarlo.
Code: Select all | Expand
#include "fivewin.ch"
Function Main()
Local oDlg, oCheck, oRadio, nRadio:=1, lCheck:=.F.
DEFINE DIALOG oDlg NAME "TEST" TRANSPARENT COLOR CLR_BLACK, CLR_WHITE
REDEFINE CHECKBOX oCheck VAR lCheck ID 103 OF oDlg WHEN nRadio=2
REDEFINE RADIO oRadio VAR nRadio ID 104,105 OF oDlg
ACTIVATE DIALOG oDlg CENTERED
Return (nil)
Code: Select all | Expand
// RESOURCE SCRIPT generated by "Pelles C for Windows, version 9.00".
#include <windows.h>
#include <commctrl.h>
#include <richedit.h>
#include "resource.h"
LANGUAGE LANG_ENGLISH,SUBLANG_ENGLISH_US
TEST DIALOG DISCARDABLE 45, 45, 339, 143
STYLE WS_POPUP|DS_MODALFRAME|WS_CAPTION|WS_VISIBLE
CAPTION "Prueba Check "
FONT 8, "Segoe UI"
{
CONTROL "&Check 1", 103, "Button", BS_AUTOCHECKBOX|BS_FLAT|WS_TABSTOP, 15, 30, 132, 12
CONTROL "No &activo", 104, "Button", BS_AUTORADIOBUTTON, 189, 30, 60, 12
CONTROL "&Activo\r\n\r\n", 105, "Button", BS_AUTORADIOBUTTON, 189, 45, 74, 12
CONTROL "Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno ", -1, "Static", WS_GROUP, 15, 71, 283, 49
}
// Add this to your resources RC file
#ifdef __FLAT__
1 24 "WindowsXP.Manifest"
#endif
#ifdef __64__
1 24 "WinXP/WindowsXP.Manifest64"
#endif
Re: Problema en el refresco Checkbox
Posted: Thu Jul 11, 2019 6:50 pm
by karinha
Code: Select all | Expand
#include "fivewin.ch"
STATIC nRadio := 1, lCheck:=.F.
Function Main()
Local oDlg, oCheck, oRadio
DEFINE DIALOG oDlg NAME "TEST" TRANSPARENT COLOR CLR_BLACK, CLR_WHITE
REDEFINE CHECKBOX oCheck VAR lCheck ID 103 OF oDlg WHEN nRadio=2
REDEFINE RADIO oRadio VAR nRadio ID 104,105 OF oDlg ;
ON CHANGE( REFRESH_ANGEL( oDlg ) )
ACTIVATE DIALOG oDlg CENTERED
Return (nil)
FUNCTION REFRESH_ANGEL( oDlg )
IF nRadio=2
oDlg:UpDate()
ELSE
oDlg:Refresh()
ENDIF
RETURN( .T. )
Re: Problema en el refresco Checkbox
Posted: Fri Jul 12, 2019 6:14 am
by AngelSalom
Gracias karinha, además de que el ejemplo que muestras hace exactamente lo mismo, esto supondría modificar muchísimo código en mis aplicaciones, entiendo que es una funcionalidad que en la versión de FW que estaba utilizando funcionaba bien y que ahora no lo está haciendo correctamente, supongo que deberá corregirse a nivel de las clases nativas en lugar de tener que hacer un "apaño".
Re: Problema en el refresco Checkbox
Posted: Fri Jul 12, 2019 3:07 pm
by karinha
Una imagen, habla por si.

Saludos.
Re: Problema en el refresco Checkbox
Posted: Fri Jul 12, 2019 3:14 pm
by karinha
ANGEL2.PRG
Code: Select all | Expand
#include "FiveWin.ch"
STATIC nRadio := 1, lCheck := .F.
function Main()
Local oDlg, oCheck, oRadio, oFnt, oFont, oSalida
SET _3DLOOK ON
SkinButtons()
DEFINE FONT oFnt NAME "Ms Sans Serif" SIZE 0, -12 BOLD
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0, -14 BOLD
DEFINE DIALOG oDlg RESOURCE "Teste" FONT oFont
oDlg:lHelpIcon := .F.
REDEFINE CHECKBOX oCheck VAR lCheck ID 103 OF oDlg WHEN nRadio = 2
REDEFINE RADIO oRadio VAR nRadio ID 104, 105 OF oDlg
REDEFINE BUTTON oSalida ID 120 OF oDlg ACTION( oDlg:End() ) CANCEL
SET FONT OF oSalida TO oFont
ACTIVATE DIALOG oDlg CENTERED
oFnt:End()
oFont:End()
RETURN NIL
Saludos.
Re: Problema en el refresco Checkbox
Posted: Fri Jul 12, 2019 3:21 pm
by karinha
Code: Select all | Expand
/****************************************************************************
angel2.rc
produced by Borland Resource Workshop
*****************************************************************************/
TESTE DIALOG 135, 78, 260, 144
STYLE DS_ABSALIGN | DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION
CAPTION "TESTE CHECKBOX"
{
CONTROL "&Check 1", 103, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 48, 19, 49, 9
CONTROL "Rádio &No Activo", 104, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 142, 19, 70, 12
CONTROL "Rádio &Activo ", 105, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 142, 36, 70, 12
PUSHBUTTON "&Salida", 120, 100, 123, 50, 14
CTEXT "Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno By Angel - Funciona Bién con Workshop y FWH1701 - No me gusta PELLESC.", -1, 11, 51, 240, 60, SS_CENTER | WS_CHILD | WS_VISIBLE
GROUPBOX "Angel Group - CheckBox y Rádio On Off.", 501, 5, 5, 250, 114, BS_GROUPBOX | WS_CHILD | WS_VISIBLE
}
1 24 LOADONCALL MOVEABLE
{
'3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31'
'2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D 22 55 54'
'46 2D 38 22 20 73 74 61 6E 64 61 6C 6F 6E 65 3D'
'22 79 65 73 22 3F 3E 0D 0A 3C 61 73 73 65 6D 62'
'6C 79 20 78 6D 6C 6E 73 3D 22 75 72 6E 3A 73 63'
'68 65 6D 61 73 2D 6D 69 63 72 6F 73 6F 66 74 2D'
'63 6F 6D 3A 61 73 6D 2E 76 31 22 20 6D 61 6E 69'
'66 65 73 74 56 65 72 73 69 6F 6E 3D 22 31 2E 30'
'22 3E 0D 0A 3C 61 73 73 65 6D 62 6C 79 49 64 65'
'6E 74 69 74 79 0D 0A 20 20 20 20 76 65 72 73 69'
'6F 6E 3D 22 31 2E 30 2E 30 2E 30 22 0D 0A 20 20'
'20 20 70 72 6F 63 65 73 73 6F 72 41 72 63 68 69'
'74 65 63 74 75 72 65 3D 22 58 38 36 22 0D 0A 20'
'20 20 20 6E 61 6D 65 3D 22 46 69 76 65 54 65 63'
'68 20 53 6F 66 74 77 61 72 65 2E 46 69 76 65 57'
'69 6E 2E 33 32 62 69 74 73 22 0D 0A 20 20 20 20'
'74 79 70 65 3D 22 77 69 6E 33 32 22 0D 0A 2F 3E'
'0D 0A 3C 64 65 73 63 72 69 70 74 69 6F 6E 3E 59'
'6F 75 72 20 61 70 70 6C 69 63 61 74 69 6F 6E 20'
'64 65 73 63 72 69 70 74 69 6F 6E 20 68 65 72 65'
'2E 3C 2F 64 65 73 63 72 69 70 74 69 6F 6E 3E 0D'
'0A 3C 64 65 70 65 6E 64 65 6E 63 79 3E 0D 0A 20'
'20 20 20 3C 64 65 70 65 6E 64 65 6E 74 41 73 73'
'65 6D 62 6C 79 3E 0D 0A 20 20 20 20 20 20 20 20'
'3C 61 73 73 65 6D 62 6C 79 49 64 65 6E 74 69 74'
'79 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 74'
'79 70 65 3D 22 77 69 6E 33 32 22 0D 0A 20 20 20'
'20 20 20 20 20 20 20 20 20 6E 61 6D 65 3D 22 4D'
'69 63 72 6F 73 6F 66 74 2E 57 69 6E 64 6F 77 73'
'2E 43 6F 6D 6D 6F 6E 2D 43 6F 6E 74 72 6F 6C 73'
'22 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 76'
'65 72 73 69 6F 6E 3D 22 36 2E 30 2E 30 2E 30 22'
'0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 70 72'
'6F 63 65 73 73 6F 72 41 72 63 68 69 74 65 63 74'
'75 72 65 3D 22 58 38 36 22 0D 0A 20 20 20 20 20'
'20 20 20 20 20 20 20 70 75 62 6C 69 63 4B 65 79'
'54 6F 6B 65 6E 3D 22 36 35 39 35 62 36 34 31 34'
'34 63 63 66 31 64 66 22 0D 0A 20 20 20 20 20 20'
'20 20 20 20 20 20 6C 61 6E 67 75 61 67 65 3D 22'
'2A 22 0D 0A 20 20 20 20 20 20 20 20 2F 3E 0D 0A'
'20 20 20 20 3C 2F 64 65 70 65 6E 64 65 6E 74 41'
'73 73 65 6D 62 6C 79 3E 0D 0A 3C 2F 64 65 70 65'
'6E 64 65 6E 63 79 3E 0D 0A 3C 2F 61 73 73 65 6D'
'62 6C 79 3E 0D 0A'
}
Saludos.
Re: Problema en el refresco Checkbox
Posted: Fri Jul 12, 2019 3:23 pm
by karinha
Manifest...
Code: Select all | Expand
// Add this to your resources RC file desde donde esta tu FWH...
#ifdef __FLAT__
1 24 "C:\FWH1905\WINXP\WindowsXP.Manifest"
#endif
#ifdef __64__
1 24 "C:\FWH1905\WINXP\WindowsXP.Manifest64"
#endif
Saludos.
Re: Problema en el refresco Checkbox
Posted: Sat Jul 13, 2019 4:04 pm
by nageswaragunupudi
Mr. AngelSalom
What was the old version you were using?
Re: Problema en el refresco Checkbox
Posted: Sat Jul 13, 2019 6:01 pm
by AngelSalom
Mr. rao 12.04
Re: Problema en el refresco Checkbox
Posted: Sun Jul 14, 2019 12:12 am
by nageswaragunupudi
I built your sample with both FWH1905 and FWH1204.
The behavior is the same with both FWH1905 and also FWH1204.
Please see this:

So, the issue is not because of upgrading FWH.
In both the versions, adding or not adding the Manifest is making all the difference.
We are looking into this.
Re: Problema en el refresco Checkbox
Posted: Mon Jul 15, 2019 3:54 pm
by jvtecheto
Hola Angel:
He creado un proyecto con los ficheros que has adjuntado
lo ejecuto y no me hace el efecto que te hace a ti, tengo la ultima version de Fivewin como tu.
mira

no entiendo este comportamiento que te hace.
Como construyes el exe.?
Yo utilizo fivEdit (Cristobal Navarro), por el IDE que utilizas debes utilizar archivos .mak , ahi esta la clave creo.
Si tienes instalado fivEdit pruebalo con el , veras como no te borra el control de abajo.
Espero que soluciones el tema a la mayor brevedad.
Saludos
Jose.
"Si algun dia no tienes mucho trabajo ya quedaremos para charlar un rato. "
Re: Problema en el refresco Checkbox
Posted: Mon Jul 15, 2019 4:01 pm
by jvtecheto
For Mr. Rao.
I'm sorry but with me the latest version of fivewin does not do that behavior I use fivedit to build.
look at the image above.
Idea :
I have seen that both use the borland compiler 7.0 I use borland 7.3
Could there be a difference?
Regards
Re: Problema en el refresco Checkbox
Posted: Mon Jul 15, 2019 5:06 pm
by AngelSalom
brakaman wrote:Hola Angel:
He creado un proyecto con los ficheros que has adjuntado
lo ejecuto y no me hace el efecto que te hace a ti, tengo la ultima version de Fivewin como tu.
mira

no entiendo este comportamiento que te hace.
Como construyes el exe.?
Yo utilizo fivEdit (Cristobal Navarro), por el IDE que utilizas debes utilizar archivos .mak , ahi esta la clave creo.
Si tienes instalado fivEdit pruebalo con el , veras como no te borra el control de abajo.
Espero que soluciones el tema a la mayor brevedad.
Saludos
Jose.
"Si algun dia no tienes mucho trabajo ya quedaremos para charlar un rato. "
Cuando pongo ejemplos en el foro siempre utilizo el buildh.bat que incluye cada versión de FW (en samples) para maximizar la compatibilidad y procurar que las pruebas que se hagan no difieran por cuestiones del script de compilado.
Mi aplicación tiene varios cientos de prg, librerías de terceros, librerías propias, código c propio, clases adaptadas ... mucho jaleo para integrarlo todo con fivEdit. Pero bueno, sigo en que con la versión 12.04 (en mi aplicación) no fallaba y en la actual sí.
Utilizo Borland 7.0 tanto para FWH12.04 como para FWH19.05.
Está claro que los tiros van por el WindowsXP.Manifest y el trato diferente que realizan las clases de FW en el repintado en el caso de que este incluído esta información el los Recursos, presupongo que con el isAppThemed() ... pero no me he puesto a investigar más a fondo de momento .... estoy acabando de ajustar más código para el cambio de versión.
Respecto a charlar a ver si hablamos después del verano, estamos con las vacaciones en los morros y con un cambio próximo de oficina que nos va a traer locos!!!! Saludos.
Re: Problema en el refresco Checkbox
Posted: Mon Jul 15, 2019 9:24 pm
by jvtecheto
Hola Angel.
No , a lo de probarlo con el FivEdit me referia solamente al archivo .prg y el archivo .rc que adjuntaste, Solo a eso no a todo la aplicacion de gestion que tienes.
No se cual puede ser el error, la verdad yo solo te digo que si lo compilas con el FivEdit no muestra el error.
No te preocupes por lo de hablar , no tengo prisa. Pero sino te viene bien tampoco pasa nada
Saludos.
Jose.
Re: Problema en el refresco Checkbox
Posted: Tue Jul 16, 2019 4:49 pm
by Euclides
Hola Angel.
prueba de esta manera...
Code: Select all | Expand
#include "fivewin.ch"
Function Main()
Local oDlg, oCheck, oRadio, nRadio:=1, lCheck:=.F.
DEFINE DIALOG oDlg NAME "TEST" COLOR CLR_BLACK, CLR_WHITE
REDEFINE CHECKBOX oCheck VAR lCheck ID 103 OF oDlg WHEN nRadio=2
REDEFINE RADIO oRadio VAR nRadio ID 104,105 OF oDlg
REDEFINE SAY ID 106 OF oDlg TRANSPARENT
ACTIVATE DIALOG oDlg CENTERED
Return nil
El RC...
Code: Select all | Expand
TEST DIALOG DISCARDABLE 45, 45, 339, 143
STYLE WS_POPUP|DS_MODALFRAME|WS_CAPTION|WS_VISIBLE
CAPTION "Prueba Check "
FONT 8, "Segoe UI"
{
CONTROL "&Check 1", 103, "Button", BS_AUTOCHECKBOX|BS_FLAT|WS_TABSTOP, 15, 30,
132, 12
CONTROL "No &activo", 104, "Button", BS_AUTORADIOBUTTON, 189, 30, 60, 12
CONTROL "&Activo\r\n\r\n", 105, "Button", BS_AUTORADIOBUTTON, 189, 45, 74, 12
CONTROL "Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno
Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno ", 106, "Static", WS_GROUP, 15, 71, 283, 49
}
#ifdef __FLAT__
1 24 "WinXP/WindowsXP.Manifest"
#endif
#ifdef __64__
1 24 "WinXP/WindowsXP.Manifest64"
#endif
Saludos. Euclides