Page 1 of 1

REDEFINE BTNBMP

PostPosted: Fri Dec 11, 2015 6:30 pm
by jmartial
Buenas tardes,

¿ Qué tipo de control hay que poner en workshop para usar un REDEFINE BTNBMP?

He puesto un Pushbutton y no funciona el botón, ni sale el texto.

Re: REDEFINE BTNBMP

PostPosted: Fri Dec 11, 2015 6:35 pm
by cnavarro
Has intentado

CONTROL "Button"

Re: REDEFINE BTNBMP

PostPosted: Fri Dec 11, 2015 6:54 pm
by jmartial
Es tbtnbmp pero como lo escribo en workshop?

Re: REDEFINE BTNBMP

PostPosted: Sat Dec 12, 2015 10:38 am
by jmartial
Buenos días,

Si, ya he recordado como crear el control custom en workshop, pero sigue sin funcionar, se ve el botón pero no funciona ni ejecuta su acción pulsándolo.

¿Algún ejemplo de REDEFINE BTNBMP que funcione?

Re: REDEFINE BTNBMP

PostPosted: Sat Dec 12, 2015 10:57 am
by Antonio Linares
Joaquín,

Tienes que definirlo como un control definido por el usuario (custom control) y escribir entre comillas "TBTNBMP"

Re: REDEFINE BTNBMP

PostPosted: Sat Dec 12, 2015 11:06 am
by jmartial
Antonio,

No funciona, pruebaló en el emulador de wce mismo.

El TbtnBmp aparece pero al hacerle click, se queda pulsado, no ejecuta acción, y se borra su texto y color. En fin un desastre.

Desde código, no desde recursos, funciona perfectamente.

¿Cómo lo soluciono?

Re: REDEFINE BTNBMP

PostPosted: Sat Dec 12, 2015 7:51 pm
by Antonio Linares
Joaquín,

Tienes a mano un ejemplo para probarlo ? gracias

Re: REDEFINE BTNBMP

PostPosted: Sun Dec 13, 2015 1:15 pm
by jmartial
Antonio,

Lo soluciono poniendo en el INIT del diálogo lo siguiente:

aeval( oDlg:aControls, { |o| o:Refresh() } )

Por lo que imagino que el problema está en la clase TDialog.

¿Habría manera de solucionarlo en la propia clase TDialog?

Re: REDEFINE BTNBMP

PostPosted: Sun Dec 13, 2015 10:12 pm
by Antonio Linares
Joaquín,

Este ejemplo esta funcionando aqui correctamente:

testbtnb.prg
Code: Select all  Expand view
#include "fwce.ch"

function Main()

   local oDlg, oBtn

   DEFINE DIALOG oDlg RESOURCE "Test"

   REDEFINE BTNBMP oBtn ID 1 OF oDlg PROMPT "Ok" ;
      ACTION MsgInfo( "ok" )

   ACTIVATE DIALOG oDlg ;
      ON INIT oBtn:SetColor( CLR_WHITE, CLR_BLUE )

return nil


testbtnb.rc
Code: Select all  Expand view
#include <windows.h>

test DIALOG 10, 35, 139, 89
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "DialogBox Test"
FONT 8, "system"
{
 LTEXT "&Name:", -1, 14, 4, 23, 8
 EDITTEXT 110, 12, 14, 114, 12
 LTEXT "&Address:", -1, 14, 30, 32, 8
 EDITTEXT 120, 12, 41, 114, 12
 CONTROL "", IDOK, "TBtnBmp", WS_BORDER|WS_TABSTOP, 14, 67, 50, 14
 PUSHBUTTON "Cancel", IDCANCEL, 74, 67, 50, 14
}


Image

Re: REDEFINE BTNBMP

PostPosted: Sun Dec 13, 2015 11:07 pm
by jmartial
Antonio,

Me ocurre en un diálogo que lo llama la window principal.
Y no tiene título es tipo modal y popup.

En un ejemplo como el tuyo va bien.

No se la razòn.

Re: REDEFINE BTNBMP

PostPosted: Sun Dec 13, 2015 11:08 pm
by Antonio Linares
Por favor proporcioname un ejemplo en donde ocurra lo que comentas, gracias