Page 1 of 1
Problemas de 'TClase'
Posted: Wed Dec 13, 2017 10:59 pm
by Xevi
Bien, sigo con mis pinitos y siguiendo con mi 'forma' de programar...
veo que esto...
@ 5.6, 1.6 BUTTON "&Menu1" OF oWnd SIZE 100, 30 ACTION menu( oWnd )
@ 7.8, 1.6 BUTTON "&Menu1 2007" OF oWnd SIZE 100, 30 ACTION menu2007( oWnd )
es lo mismo que hacer
TButton():New( 100, 10, "&Menu", oWnd, {|| menu( oWnd )}, 100, 30,,, .F., .T., .F.,, .F.,,, .F.,, .F. )
TButton():New( 140, 10, "&Menu 2007", oWnd, {|| menu2007( oWnd )}, 100, 30,,, .F., .T., .F.,, .F.,,, .F.,, .F. )
segun he visto en el .ppo
Bien, pero como 'mi costumbre' que tengo adquirido, es sobre la misma clase ir añadiendo las propiedades i eventos que voy definiendo segun el caso, pues vendria a ser como...
WITH OBJECT oBtn1 := TButton():New()
:SetBounds( 110, 100, 210, 130 )
:cCaption := "&Menu"
:bAction := {|| menu(oWnd) }
END
WITH OBJECT oBtn2 := TButton():New()
:SetBounds( 110, 140, 210, 170 )
:bAction := {|| menu2007(oWnd) }
:cCaption := "&2007"
END
Pues, no!!!
coje bien posicion y medidas SetBounds()
también el bloque de acción a tomar bAction
PERO NO ASÍ EL TEXTO cCaption
y deja el texto Button1 que veo que es el DEFAULT que toma al crearse el objeto en la clase
He estado mirando, pero no veo que me puedo dejar.
Una ayudita!!!
Un Saludo,
Xevi.
Re: Problemas de 'TClase'
Posted: Wed Dec 13, 2017 11:19 pm
by cnavarro
Prueba asi
Code: Select all
:SetText( "Test" )
// :SetFont( oFont )
Re: Problemas de 'TClase'
Posted: Wed Dec 13, 2017 11:29 pm
by Xevi
Ahora si.
Gracias.
Un Saludo,
Xevi.
Re: Problemas de 'TClase'
Posted: Wed Dec 13, 2017 11:37 pm
by Xevi
Cristobal,
he estado haciendo pruebas con los distintos tipos de menues, y veo que si establecemos un tipo 2007, 2010, 2013 o 2015, el ancho que ocupa este menu és muy 'desorbitado', por decirlo de una manera. Vaya, que el espaciado que hay a la derecha es tremendamente largo.
Puedes verlo en este ejemplo...
#include "FiveWin.ch"
Static oWnd
//------------------------------------------------------------------------//
function Main()
Local oIcon, oBtn1, oBtn2
SET CENTURY ON
SET DATE FRENCH
SET DELETE ON
DEFINE ICON oIcon NAME "citroen"
DEFINE WINDOW oWnd FROM 1, 1 TO 600, 800 ;
TITLE "Prova FWH amb xEdit!" ;
ICON oIcon PIXEL
* @ 5.6, 1.6 BUTTON "&Menu" OF oWnd SIZE 100, 30 ACTION menu( oWnd, oBtn2:nTop + oBtn2:nHeight )
* @ 7.8, 1.6 BUTTON "&Menu 2007" OF oWnd SIZE 100, 30 ACTION menu2007( oWnd, oBtn2:nTop + oBtn2:nHeight )
TButton():New( 100, 10, "Menu", oWnd, {|| menu( oWnd, oBtn2:nTop + oBtn2:nHeight )}, 100, 30,,, .F., .T., .F.,, .F.,,, .F.,, .F. )
TButton():New( 140, 10, "Menu 2007", oWnd, {|| menu2007( oWnd, oBtn2:nTop + oBtn2:nHeight )}, 100, 30,,, .F., .T., .F.,, .F.,,, .F.,, .F. )
WITH OBJECT oBtn1 := TButton():New()
:SetBounds( 110, 100, 210, 130 )
* :cCaption := "Menu 2010"
:SetText( "Menu 2010" )
:bAction := {|| menu2010( oWnd, oBtn2:nTop + oBtn2:nHeight ) }
END
WITH OBJECT oBtn2 := TButton():New()
:SetBounds( 110, 140, 210, 170 )
:SetText( "Menu 2013" )
:bAction := {|| menu2013( oWnd, oBtn2:nTop + oBtn2:nHeight ) }
END
WITH OBJECT oBtn2 := TButton():New()
:SetBounds( 210, 140, 310, 170 )
:SetText( "Menu 2015" )
:bAction := {|| menu2015( oWnd, oBtn2:nTop + oBtn2:nHeight ) }
END
ACTIVATE WINDOW oWnd CENTERED
return nil
//------------------------------------------------------------------------//
FUNCTION menu( oWnd, nTop )
LOCAL oMenu
MENU oMenu POPUP
MENUITEM "Tancar " ACTION oWnd:end() RESOURCE "exitbmp"
MENUITEM "TancarJPG" RESOURCE "exitjpg"
MENUITEM "TancarPNG" RESOURCE "exitpng"
SEPARATOR
MENUITEM "Missatges Rebuts/Enviats en la sesió" RESOURCE "sendbmp"
MENUITEM "Fitxer de Dossiers Exportats" RESOURCE "servicebmp"
ENDMENU
ACTIVATE POPUP oMenu AT nTop,0 OF oWnd
RETURN NIL
//------------------------------------------------------------------------//
FUNCTION menu2007( oWnd, nTop )
LOCAL oMenu
MENU oMenu POPUP 2007
MENUITEM "Tancar " ACTION oWnd:end() RESOURCE "exitbmp"
MENUITEM "Tancar " ACTION oWnd:end() RESOURCE "exitbmp"
MENUITEM "TancarJPG" RESOURCE "exitjpg"
MENUITEM "TancarPNG" RESOURCE "exitpng"
SEPARATOR
MENUITEM "Missatges Rebuts/Enviats en la sesió" RESOURCE "sendbmp"
MENUITEM "Fitxer de Dossiers Exportats" RESOURCE "servicebmp"
ENDMENU
ACTIVATE POPUP oMenu AT nTop,0 OF oWnd
RETURN NIL
//------------------------------------------------------------------------//
FUNCTION menu2010( oWnd, nTop )
LOCAL oMenu
MENU oMenu POPUP 2010
MENUITEM "Tancar " ACTION oWnd:end() RESOURCE "exitbmp"
MENUITEM "Tancar " ACTION oWnd:end() RESOURCE "exitbmp"
MENUITEM "TancarJPG" RESOURCE "exitjpg"
MENUITEM "TancarPNG" RESOURCE "exitpng"
SEPARATOR
MENUITEM "Missatges Rebuts/Enviats en la sesió" RESOURCE "sendbmp"
MENUITEM "Fitxer de Dossiers Exportats" RESOURCE "servicebmp"
ENDMENU
ACTIVATE POPUP oMenu AT nTop,0 OF oWnd
RETURN NIL
//------------------------------------------------------------------------//
FUNCTION menu2013( oWnd, nTop )
LOCAL oMenu
MENU oMenu POPUP 2013
MENUITEM "Tancar " ACTION oWnd:end() RESOURCE "exitbmp"
MENUITEM "Tancar " ACTION oWnd:end() RESOURCE "exitbmp"
MENUITEM "TancarJPG" RESOURCE "exitjpg"
MENUITEM "TancarPNG" RESOURCE "exitpng"
SEPARATOR
MENUITEM "Missatges Rebuts/Enviats en la sesió" RESOURCE "sendbmp"
MENUITEM "Fitxer de Dossiers Exportats" RESOURCE "servicebmp"
ENDMENU
ACTIVATE POPUP oMenu AT nTop,0 OF oWnd
RETURN NIL
//------------------------------------------------------------------------//
FUNCTION menu2015( oWnd, nTop )
LOCAL oMenu
MENU oMenu POPUP 2015
MENUITEM "Tancar " ACTION oWnd:end() RESOURCE "exitbmp"
MENUITEM "Tancar " ACTION oWnd:end() RESOURCE "exitbmp"
MENUITEM "TancarJPG" RESOURCE "exitjpg"
MENUITEM "TancarPNG" RESOURCE "exitpng"
SEPARATOR
MENUITEM "Missatges Rebuts/Enviats en la sesió" RESOURCE "sendbmp"
MENUITEM "Fitxer de Dossiers Exportats" RESOURCE "servicebmp"
ENDMENU
ACTIVATE POPUP oMenu AT nTop,0 OF oWnd
RETURN NIL
son 5 botones con vision del mismo menu en los cinco tipos existendes...
Veras que el ancho del primer menu es correcto, los demás, son muy, muy anchos y con mucho espaciado a la derecha "vacio"
Un Saludo,
Xevi.
Re: Problemas de 'TClase'
Posted: Wed Dec 13, 2017 11:55 pm
by cnavarro
Configúralo a tu gusto
Code: Select all
.../...
function Main()
Local oIcon, oBtn1, oBtn2
SET CENTURY ON
SET DATE FRENCH
SET DELETE ON
GetnWidthItem( 0.82 ) //Por defecto tiene valor 1
.../...
o define un Font en el menu
Code: Select all
Static oFont
function Main()
Local oIcon, oBtn1, oBtn2
SET CENTURY ON
SET DATE FRENCH
SET DELETE ON
DEFINE FONT oFont NAME "Calibri" SIZE 0, -12
.../...
FUNCTION menu2007( oWnd, nTop )
LOCAL oMenu
MENU oMenu POPUP 2007 FONT oFont
.../...
Utiliza el boton "Code" al escribir post con código para que sea más sencillo copiar y pegar lo que escribes
Re: Problemas de 'TClase'
Posted: Fri Dec 15, 2017 3:36 am
by nageswaragunupudi
Code: Select all
WITH OBJECT oBtn1: = TButton (): New ()
: SetBounds (110, 100, 210, 130)
: cCaption: = "& Menu"
: bAction: = {|| menu (oWnd)}
END
This approach does not work with all / many classes.
The reason is that many of the parameters of the New() method should be provided in the New() method for proper construction of the Control.
We strongly recommend using command syntax and we retain compatibility with command syntax in future versions.
Even if you directly use TClass():New( <params> ), we advise you to pass all the parameters in the New() method. Then only the control (in some cases, corresponding Windows' control) is created using these parameters. So, for obvious reasons, creating a class by TClass():New() and then later assigning important parameters as datas to the object
does not work.