Página 1 de 1

Problema de maskedit y nALignment

Publicado: Mar Nov 20, 2007 12:11 pm
por jmartial
Hola,
En el IDE se puede cambiar la propiedad nALignment y funciona.
Pero si quiero cambiarlo en el formInitialize() , lo siguiente pasa
totalmente de mi:
::oMaskEdit1:nALignment := taRIGHT
¿Es un bug o hay que hacer algo especial para cambiarlo en runtime?
Un Saludo,
Joaquí­n

Problema de maskedit y nALignment

Publicado: Mar Nov 20, 2007 2:21 pm
por ignacio
Joaquín,
Como puedes comprobar en la ayuda esa propiedad sólo es modificable en
tiempo de diseño, lo que quiere decir que una vez que se ha ejecutado el
método Create no hay forma de cambiar esa propiedad. Es una limitación del
API de Windows.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Joaquín Martínez" <jmartial@interbook.net> escribió en el mensaje
news:4742c0ce$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola,
>
> En el IDE se puede cambiar la propiedad nALignment y funciona.
>
> Pero si quiero cambiarlo en el formInitialize() , lo siguiente pasa
> totalmente de mi:
>
> ::oMaskEdit1:nALignment := taRIGHT
>
>
> ¿Es un bug o hay que hacer algo especial para cambiarlo en runtime?
>
> Un Saludo,
> Joaquín

Problema de maskedit y nALignment

Publicado: Mar Nov 20, 2007 8:02 pm
por Xevi
Joaquí­n,
En el caso que necesites cambiar de alineación un Edit, yo lo que hago es
"destruir" el Edit y volverlo a crear...
por ej. en un Form yo necesito de un Edit que se encarga de recibir los
datos de búsqueda en un Browse, y no quiero crear un Edit por cada columna
del Browse para buscar. Bien, pues al hacer clic en el mi botón de búsqueda,
eso es lo que hago...
::oEditRecerca:Destroy()
WITH OBJECT ::oEditRecerca := TMaskEdit():New( ::oPanelTop )
:nTop := 11
:OnChange := "xEditRecercaChange"
:OnKeyDown := "xEditRecercaKeyDown"
:OnExit := {|oSender| ::oLblRecerca:lVisible := oSender:lVisible :=
..F., oSender:Value := "", ::oBrowse1:SetFocus() }
:nLeft := 0
For n:=1 to nCol-1
:nLeft := ::oBrowse1:aCols[n]:nWidth
Next
:nWidth := ::oBrowse1:aCols[nCol]:nWidth
:cPicture := ::oBrowse1:aCols[nCol]:cPicture
If nCol = 1 .or. nCol = 5 .or. nCol = 8
:nAlignment := taRIGHT
:Value := If( nCol = 1, ::oDbfDataSet1:ASSENT, If( nCol = 5,
::oDbfDataSet1:IMPORT, ::oDbfDataSet1:ORDRE ) )
ElseIf nCol = 2
:Value := ::oDbfDataSet1:DATAA
EndIf
:Create()
END
WITH OBJECT ::oLblRecerca
:nLeft := ::oEditRecerca:nLeft
:nWidth := ::oEditRecerca:nWidth
END
::oLblRecerca:lVisible := .T.
::oEditRecerca:SetFocus()
Return 0
Espero te sirva.
A mi me funciona perfecto!!!
Un Saludo,
Xevi.
"Joaquí­n Martí­nez" <jmartial@interbook.net> escribió en el mensaje de
noticias news:4742c0ce$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola,
>
> En el IDE se puede cambiar la propiedad nALignment y funciona.
>
> Pero si quiero cambiarlo en el formInitialize() , lo siguiente pasa
> totalmente de mi:
>
> ::oMaskEdit1:nALignment := taRIGHT
>
>
> ¿Es un bug o hay que hacer algo especial para cambiarlo en runtime?
>
> Un Saludo,
> Joaquí­n

Problema de maskedit y nALignment

Publicado: Mié Nov 21, 2007 10:03 am
por jmartial
Gracias Xevi,
Pero no me sirve, yo sólo quiero cambiar la alineación en cualquier get
en una clase estándar para toda la aplicación, y destruir y crear serí­a
una pasada.
Un Saludo,
Joaquí­n
Xevi escribió:
> Joaquí­n,
>
> En el caso que necesites cambiar de alineación un Edit, yo lo que hago
> es "destruir" el Edit y volverlo a crear...
> por ej. en un Form yo necesito de un Edit que se encarga de recibir los
> datos de búsqueda en un Browse, y no quiero crear un Edit por cada
> columna del Browse para buscar. Bien, pues al hacer clic en el mi botón
> de búsqueda, eso es lo que hago...
>
> ::oEditRecerca:Destroy()
> WITH OBJECT ::oEditRecerca := TMaskEdit():New( ::oPanelTop )
> :nTop := 11
> :OnChange := "xEditRecercaChange"
> :OnKeyDown := "xEditRecercaKeyDown"
> :OnExit := {|oSender| ::oLblRecerca:lVisible := oSender:lVisible :=
> .F., oSender:Value := "", ::oBrowse1:SetFocus() }
> :nLeft := 0
> For n:=1 to nCol-1
> :nLeft := ::oBrowse1:aCols[n]:nWidth
> Next
> :nWidth := ::oBrowse1:aCols[nCol]:nWidth
> :cPicture := ::oBrowse1:aCols[nCol]:cPicture
> If nCol = 1 .or. nCol = 5 .or. nCol = 8
> :nAlignment := taRIGHT
> :Value := If( nCol = 1, ::oDbfDataSet1:ASSENT, If( nCol = 5,
> ::oDbfDataSet1:IMPORT, ::oDbfDataSet1:ORDRE ) )
> ElseIf nCol = 2
> :Value := ::oDbfDataSet1:DATAA
> EndIf
> :Create()
> END
>
> WITH OBJECT ::oLblRecerca
> :nLeft := ::oEditRecerca:nLeft
> :nWidth := ::oEditRecerca:nWidth
> END
>
> ::oLblRecerca:lVisible := .T.
> ::oEditRecerca:SetFocus()
> Return 0
>
>
> Espero te sirva.
> A mi me funciona perfecto!!!
>
>
> Un Saludo,
> Xevi.
>
>
> "Joaquí­n Martí­nez" <jmartial@interbook.net> escribió en el mensaje de
> noticias news:4742c0ce$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Hola,
>>
>> En el IDE se puede cambiar la propiedad nALignment y funciona.
>>
>> Pero si quiero cambiarlo en el formInitialize() , lo siguiente pasa
>> totalmente de mi:
>>
>> ::oMaskEdit1:nALignment := taRIGHT
>>
>>
>> ¿Es un bug o hay que hacer algo especial para cambiarlo en runtime?
>>
>> Un Saludo,
>> Joaquí­n
>