Problema en el refresco Checkbox (solucionado)

User avatar
AngelSalom
Posts: 664
Joined: Fri Oct 07, 2005 7:38 am
Location: Vinaros (Castellón ) - España
Contact:

Problema en el refresco Checkbox (solucionado)

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

Image

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

#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

// 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 

 
Last edited by AngelSalom on Wed Jul 17, 2019 7:26 pm, edited 1 time in total.
Angel Salom
http://www.visionwin.com
---------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.0
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Problema en el refresco Checkbox

Post by karinha »

Code: Select all

#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
User avatar
AngelSalom
Posts: 664
Joined: Fri Oct 07, 2005 7:38 am
Location: Vinaros (Castellón ) - España
Contact:

Re: Problema en el refresco Checkbox

Post 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".
Angel Salom
http://www.visionwin.com
---------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.0
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Problema en el refresco Checkbox

Post by karinha »

Una imagen, habla por si.

Image

Saludos.
João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Problema en el refresco Checkbox

Post by karinha »

ANGEL2.PRG

Code: Select all

#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
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Problema en el refresco Checkbox

Post by karinha »

Code: Select all

/****************************************************************************


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
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Problema en el refresco Checkbox

Post by karinha »

Manifest...

Code: Select all

// 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
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: Problema en el refresco Checkbox

Post by nageswaragunupudi »

Mr. AngelSalom

What was the old version you were using?
Regards

G. N. Rao.
Hyderabad, India
User avatar
AngelSalom
Posts: 664
Joined: Fri Oct 07, 2005 7:38 am
Location: Vinaros (Castellón ) - España
Contact:

Re: Problema en el refresco Checkbox

Post by AngelSalom »

Mr. rao 12.04
Angel Salom
http://www.visionwin.com
---------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.0
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: Problema en el refresco Checkbox

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

Image

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
User avatar
jvtecheto
Posts: 357
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: Problema en el refresco Checkbox

Post 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
Image

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 19.06 32 bits + Harbour 3.2dev(r2011030937)+ Borland 7.4 + FivEdit
User avatar
jvtecheto
Posts: 357
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: Problema en el refresco Checkbox

Post 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
Fwh 19.06 32 bits + Harbour 3.2dev(r2011030937)+ Borland 7.4 + FivEdit
User avatar
AngelSalom
Posts: 664
Joined: Fri Oct 07, 2005 7:38 am
Location: Vinaros (Castellón ) - España
Contact:

Re: Problema en el refresco Checkbox

Post 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
Image

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
http://www.visionwin.com
---------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.0
User avatar
jvtecheto
Posts: 357
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: Problema en el refresco Checkbox

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

Saludos.

Jose.
Fwh 19.06 32 bits + Harbour 3.2dev(r2011030937)+ Borland 7.4 + FivEdit
User avatar
Euclides
Posts: 144
Joined: Wed Mar 28, 2007 1:19 pm

Re: Problema en el refresco Checkbox

Post by Euclides »

Hola Angel.
prueba de esta manera...

Code: Select all

#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

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
Post Reply