Página 1 de 1

Como puedo recorrer los componentes de un folder para asignarle alguna propiedades?

Publicado: Mié Mar 11, 2009 5:02 am
por Carlos Ortiz
En el foro se habla sobre como redefinir algunas propiedades de los
componentes de un dialog recorriendolos con algo como esto
for each oControl IN ::aControls
if oControl:IsKindOf( "TEdit" )
oControl:value := nil
...
, funciona para forms... pero no recorre los componentes de un folder que
están adentro del form, me arroja el {folder} pero como puedo acceder a los
valores de los Edit que estan en el folder.
Muchas gracias

Como puedo recorrer los componentes de un folder para asignarle alguna propiedades?

Publicado: Mié Mar 11, 2009 7:19 am
por Diego Ferreira
Saludos...
Asi lo hago yo y me resulta si por ejemplo los edit estan dentro de un
groupbox, folder o bevel....
For nN := 1 To Len( ::oFolder:aControls )
If ::oFolder:aControls[nN]:IsKindOf( "TEdit" )
::oFolder:aControls[nN]:nClrPane := clRed
EndIf
Next

Como puedo recorrer los componentes de un folder para asignarle alguna propiedades?

Publicado: Mié Mar 11, 2009 3:34 pm
por notengo
Carlos,
el control TFolder desciende de TWinControl y hereda su propiedad aControls
que almacena todos los elementos que contiene.
Saludos,
José Lalí­n

Como puedo recorrer los componentes de un folder para asignarle alguna propiedades?

Publicado: Mié Mar 11, 2009 6:43 pm
por Carlos Ortiz
Si eso debe ser correcto, el tema de que cuando los controles tEdit estan en
un folder como por ejemplo en el ejemplo DbfData6 eso no se cumple.
Puse esto en en frmfacturas de dicho proyecto y no me arroja los tEdit
for n = 1 to Len(::aControls)
msginfo(::aControls[n])
If ::aControls[n]:IsKindOf( "TEdit" )
::aControls[n]:nClrPane := clRed
endif
end
Espero comentarios y gracias nuevamente

Como puedo recorrer los componentes de un folder para asignarle alguna propiedades?

Publicado: Mié Mar 11, 2009 10:31 pm
por notengo

Carlos,
no sé si hay algún bug en la versión que tienes, pero modificando el método
MantenAlta de FormFacturas así­:
METHOD MantenAlta( oSender ) CLASS TFrmFacturas
LOCAL n
WITH OBJECT TFrmFraEdi()
:lOnAppend := .t.
:New( Application:oMainForm )
::oDbfCab:AddNew()
:cText := "Creación de facturas"
:oEdCodigo:Value := "[Auto]"
:oDteCreacion:Value := Date()
:oDteCreacion:SetFocus()
:RequestState()
//
for n = 1 to Len( :aControls)
//msginfo( :aControls[n])
If :aControls[n]:IsKindOf( "TEdit" )
:aControls[n]:nClrPane := clRed
endif
end
//
IF :ShowModal() == mrOK .and. ::GetFacNum( :oEdCodigo )
::oDbfCab:Update()
::SaveLines( :oBrwArt:aArrayData )
ELSE
::oDbfCab:Cancel()
ENDIF
:End() // por ser lHideOnClose
END WITH
RETURN NIL
El resultado es el de la captura adjunta.
Saludos,
José Lalí­n
--

Como puedo recorrer los componentes de un folder para asignarle alguna propiedades?

Publicado: Jue Mar 12, 2009 3:39 am
por Carlos Ortiz
Perfecto José, estaba invocando esas lineas en el lugar equivocado, con tu
sugerencia está solucionado.
Muchas gracias.
"José Lalín" <notengo@correo.com> escribió en el mensaje
news:49b82e40$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>
> Carlos,
>
> no sé si hay algún bug en la versión que tienes, pero modificando el
> método
> MantenAlta de FormFacturas así:
>
> METHOD MantenAlta( oSender ) CLASS TFrmFacturas
>
> LOCAL n
>
> WITH OBJECT TFrmFraEdi()
> :lOnAppend := .t.
> :New( Application:oMainForm )
> ::oDbfCab:AddNew()
> :cText := "Creación de facturas"
> :oEdCodigo:Value := "[Auto]"
> :oDteCreacion:Value := Date()
> :oDteCreacion:SetFocus()
> :RequestState()
>
> //
> for n = 1 to Len( :aControls)
> //msginfo( :aControls[n])
> If :aControls[n]:IsKindOf( "TEdit" )
> :aControls[n]:nClrPane := clRed
> endif
> end
> //
> IF :ShowModal() == mrOK .and. ::GetFacNum( :oEdCodigo )
> ::oDbfCab:Update()
> ::SaveLines( :oBrwArt:aArrayData )
> ELSE
> ::oDbfCab:Cancel()
> ENDIF
> :End() // por ser lHideOnClose
> END WITH
>
> RETURN NIL
>
> El resultado es el de la captura adjunta.
>
> Saludos,
> José Lalín
>

Como puedo recorrer los componentes de un folder para asignarle alguna propiedades?

Publicado: Jue Mar 12, 2009 3:43 am
por Carlos Ortiz
Gracias Diego, habia intentado con eso pero en el metodo equivocado.