FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Problema en el refresco Checkbox (solucionado)
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Problema en el refresco Checkbox (solucionado)
Posted: Thu Jul 11, 2019 05:50 PM
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 (fw): Select all Collapse
#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 (fw): Select all Collapse
// 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
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Problema en el refresco Checkbox
Posted: Thu Jul 11, 2019 06:50 PM
Code (fw): Select all Collapse
#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. )
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Re: Problema en el refresco Checkbox
Posted: Fri Jul 12, 2019 06:14 AM

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".

Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Problema en el refresco Checkbox
Posted: Fri Jul 12, 2019 03:07 PM
Una imagen, habla por si.



Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Problema en el refresco Checkbox
Posted: Fri Jul 12, 2019 03:14 PM
ANGEL2.PRG

Code (fw): Select all Collapse
#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.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Problema en el refresco Checkbox
Posted: Fri Jul 12, 2019 03:21 PM
Code (fw): Select all Collapse
/****************************************************************************


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.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Problema en el refresco Checkbox
Posted: Fri Jul 12, 2019 03:23 PM
Manifest...

Code (fw): Select all Collapse
// 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.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Problema en el refresco Checkbox
Posted: Sat Jul 13, 2019 04:04 PM

Mr. AngelSalom

What was the old version you were using?

Regards



G. N. Rao.

Hyderabad, India
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Re: Problema en el refresco Checkbox
Posted: Sat Jul 13, 2019 06:01 PM

Mr. rao 12.04

Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Problema en el refresco Checkbox
Posted: Sun Jul 14, 2019 12:12 AM
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.
Regards



G. N. Rao.

Hyderabad, India
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Re: Problema en el refresco Checkbox
Posted: Mon Jul 15, 2019 03:54 PM
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. "
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Re: Problema en el refresco Checkbox
Posted: Mon Jul 15, 2019 04:01 PM

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

Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Re: Problema en el refresco Checkbox
Posted: Mon Jul 15, 2019 05:06 PM
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.
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Re: Problema en el refresco Checkbox
Posted: Mon Jul 15, 2019 09:24 PM

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 :D

Saludos.

Jose.

Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Posts: 159
Joined: Wed Mar 28, 2007 01:19 PM
Re: Problema en el refresco Checkbox
Posted: Tue Jul 16, 2019 04:49 PM
Hola Angel.
prueba de esta manera...
Code (fw): Select all Collapse
#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 (fw): Select all Collapse
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