Problemas de 'TClase'

Problemas de 'TClase'

Postby Xevi » Wed Dec 13, 2017 10:59 pm

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.
Un Saludo,
Xevi.

Aprendiz de la vida!!!
User avatar
Xevi
 
Posts: 169
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Re: Problemas de 'TClase'

Postby cnavarro » Wed Dec 13, 2017 11:19 pm

Prueba asi

Code: Select all  Expand view

      :SetText( "Test" )
      //      :SetFont( oFont )
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6498
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Problemas de 'TClase'

Postby Xevi » Wed Dec 13, 2017 11:29 pm

Ahora si.

Gracias.


Un Saludo,
Xevi.
Un Saludo,
Xevi.

Aprendiz de la vida!!!
User avatar
Xevi
 
Posts: 169
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Re: Problemas de 'TClase'

Postby Xevi » Wed Dec 13, 2017 11:37 pm

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.
Un Saludo,
Xevi.

Aprendiz de la vida!!!
User avatar
Xevi
 
Posts: 169
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Re: Problemas de 'TClase'

Postby cnavarro » Wed Dec 13, 2017 11:55 pm

Configúralo a tu gusto

Code: Select all  Expand view

.../...
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  Expand view

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 :D
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6498
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Problemas de 'TClase'

Postby nageswaragunupudi » Fri Dec 15, 2017 3:36 am

Code: Select all  Expand view
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.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10207
Joined: Sun Nov 19, 2006 5:22 am
Location: India


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 10 guests