Página 1 de 1

Como cambiar propiedades de un label desde otro prg

Publicado: Jue Oct 21, 2021 9:09 pm
por ddupre
Hola Foro,

Vendo dando vueltas para poder acceder a las propiedades de un oLabel de un form, desde un PRG que contiene solamente una serie de funciones.
En concreto lo que pretendo hacer es que el Label se vea o no se vea según cierta condición que se controla en el PRG

¿Cual es la sintaxis que debo usar? he probado de todo pero ninguna forma me funciona.

Desde ya muchas gracias.
Daniel

Re: Como cambiar propiedades de un label desde otro prg

Publicado: Jue Oct 21, 2021 9:24 pm
por Hurricane
olá,

Se você tem o objeto do Form:

Código: Seleccionar todo

oFrm:oLabe1:lVisible:=nOpc = 3

Re: Como cambiar propiedades de un label desde otro prg

Publicado: Jue Oct 21, 2021 11:29 pm
por ddupre
Eric
Muchas gracias por su ayuda.
En mi caso el Form fue creado desde el IDE de Xailer, ¿como se obtiene el objeto de dicho Form?

Gracias
Un saludo

Re: Como cambiar propiedades de un label desde otro prg

Publicado: Vie Oct 22, 2021 12:27 am
por Hurricane
eu não sei como esta organizado o seu código/funções.
O Form (com o label) esta aberto?

Exibindo o título e nome da classe de todos os forms abertos:

Código: Seleccionar todo

AEVAL( application:aForms, {|o| LOGDEBUG(o:cText, o:classname) } )
procurar o object do Form:

Código: Seleccionar todo

cFormName:='?????' 
if (nPos:=ASCAN( application:aForms, {|o|lower(o:classname) == lower(cFormName)} )) > 0
   application:aForms[nPos]:oLabel???:lVisible:=.t. // .f.
endif
ddupre escribió: Jue Oct 21, 2021 11:29 pm En mi caso el Form fue creado desde el IDE de Xailer, ¿como se obtiene el objeto de dicho Form?

Re: Como cambiar propiedades de un label desde otro prg

Publicado: Vie Oct 22, 2021 12:42 am
por ddupre
Muchas gracias por enseñarme eso, lo desconocía.

Sabiendo eso y la sugerencia anterior, se me ocurrió hacer esto:
1) Declaré una variable pública llamada oForm1 y utilicé el evento on initialize del Form para asignarla.

METHOD FormInitialize( oSender ) CLASS TForm1

oForm1 := oSender

RETURN Nil

2) Luego en el PRG que contiene la serie de funciones pude hacer esto:

oForm1:oLabel1:lVisible := .T.


No se si es 100% correcta esa manera de hacerlo, pero funcionó.

Muchas gracias
Un Saludo

Re: Como cambiar propiedades de un label desde otro prg

Publicado: Vie Oct 22, 2021 1:11 am
por Hurricane
Se o form correto estiver ativo, no seu PRG de funções use:

Código: Seleccionar todo

with object application:oActiveForm
   :oLabel:lVisible:=.t.
end with

neste caso prefira self:

Código: Seleccionar todo

METHOD FormInitialize( oSender ) CLASS TForm1
oForm1 := self
RETURN Nil

Re: Como cambiar propiedades de un label desde otro prg

Publicado: Vie Oct 22, 2021 2:07 pm
por ddupre
He aprendido algo nuevo y me ha quedado claro.
Muchas gracias por su tiempo y ayuda

Un Saludo