Página 1 de 1

Cambiar Alineaci

Publicado: Mié Nov 30, 2005 3:48 pm
por Xevi
LOGDEBUG( ::oEditRecerca:nAlignment = taLEFT ) //Devuelve .F.
::oEditRecerca:nAlignment := taLEFT //Cambio la alineación del texto
LOGDEBUG( ::oEditRecerca:nAlignment = taLEFT ) //Devuelve .T.
Aunque el segundo LogDebug devuelve .T.... sigue alineandome el texto a la
derecha.
Un Saludo,
Xevi.

Cambiar Alineaci

Publicado: Mié Nov 30, 2005 3:57 pm
por joseluis
Xevi,
En ejecución es de solo lectura. No puedes cambiar su valor. Solo
desde el IDE.
Saludos,
José Luis Capel
Xevi escribió:
>
> LOGDEBUG( ::oEditRecerca:nAlignment = taLEFT ) //Devuelve .F.
> ::oEditRecerca:nAlignment := taLEFT //Cambio la alineación del texto
> LOGDEBUG( ::oEditRecerca:nAlignment = taLEFT ) //Devuelve .T.
>
> Aunque el segundo LogDebug devuelve .T.... sigue alineandome el texto a la
> derecha.
>
> Un Saludo,
> Xevi.
>
>
>

Cambiar Alineaci

Publicado: Mié Nov 30, 2005 4:25 pm
por Xevi
José Luis,
> En ejecución es de solo lectura. No puedes cambiar su valor. Solo desde
> el IDE.
Pues es un defecto de la propiedad, ¿porque no se queja y da error de
propiedad de solo lectura???
Aunque creo que debería de poderse cambiar la alineación de un
Edit/Label..., en tiempo de ejecución
Por ej. yo creo un Edit, lVisible a .F., y dependiendo de lo que necesito ,
lo muestro en unas coordenadas u otras y le doy un valor u otro... cuando és
un valor numérico, quiero alinearlo a la derecha y si es de texto a la
izquierda.
De ser así... y no poder establecer la alineación en tiempo de ejecución, me
va a obligar tener que insertar dos Edits, y tener que controlar en el
formulario dos Edits, en lugar de uno... no se, no puede ser muy complicado
poder alinear en tiempo de ejecución...
Un Saludo,
Xevi.
"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
news:438dbed6$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
> En ejecución es de solo lectura. No puedes cambiar su valor. Solo desde
> el IDE.
>
> Saludos,
> José Luis Capel
>
> Xevi escribió:
>> LOGDEBUG( ::oEditRecerca:nAlignment = taLEFT ) //Devuelve .F.
>> ::oEditRecerca:nAlignment := taLEFT //Cambio la alineación del
>> texto
>> LOGDEBUG( ::oEditRecerca:nAlignment = taLEFT ) //Devuelve .T.
>>
>> Aunque el segundo LogDebug devuelve .T.... sigue alineandome el texto a
>> la derecha.
>>
>> Un Saludo,
>> Xevi.
>>
>>
>>
>

Cambiar Alineaci

Publicado: Mié Nov 30, 2005 4:38 pm
por Xevi
De momento he "parcheado" destruyendo y contruyendo de nuevo el control...
::oEditRecerca:Destroy()
WITH OBJECT ::oEditRecerca := TMaskEdit():New( ::oTB1 )
:OnKeyDown := { | oSender, nKey, nFlags | ::xEditRecercaKeyDown( oSender, nKey ) }
:lVisible := .F.
:nAlignment := If( nCol = 5, taLEFT, taRIGHT )
:Create()
END
Pero,... ¿eso carga los recursos de la aplicación o no afecta para nada???
Gracias.
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:438dc43d$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
>
> José Luis,
>
>> En ejecución es de solo lectura. No puedes cambiar su valor. Solo desde
>> el IDE.
> Pues es un defecto de la propiedad, ¿porque no se queja y da error de
> propiedad de solo lectura???
>
> Aunque creo que deberí­a de poderse cambiar la alineación de un
> Edit/Label..., en tiempo de ejecución
> Por ej. yo creo un Edit, lVisible a .F., y dependiendo de lo que necesito ,
> lo muestro en unas coordenadas u otras y le doy un valor u otro... cuando és
> un valor numérico, quiero alinearlo a la derecha y si es de texto a la
> izquierda.
> De ser así­... y no poder establecer la alineación en tiempo de ejecución, me
> va a obligar tener que insertar dos Edits, y tener que controlar en el
> formulario dos Edits, en lugar de uno... no se, no puede ser muy complicado
> poder alinear en tiempo de ejecución...
>
>
> Un Saludo,
> Xevi.
>
>
> "José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
> news:438dbed6$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Xevi,
>>
>> En ejecución es de solo lectura. No puedes cambiar su valor. Solo desde
>> el IDE.
>>
>> Saludos,
>> José Luis Capel
>>
>> Xevi escribió:
>>> LOGDEBUG( ::oEditRecerca:nAlignment = taLEFT ) //Devuelve .F.
>>> ::oEditRecerca:nAlignment := taLEFT //Cambio la alineación del
>>> texto
>>> LOGDEBUG( ::oEditRecerca:nAlignment = taLEFT ) //Devuelve .T.
>>>
>>> Aunque el segundo LogDebug devuelve .T.... sigue alineandome el texto a
>>> la derecha.
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>>
>>
>
>
>
>
--

Cambiar Alineaci

Publicado: Mié Nov 30, 2005 7:26 pm
por ignacio
Xevi,
Efectivamente debería, pero el API de Windows no nos deja :-(
Algunos de los estilos de los controles nativos de Windows se pueden
modificar con la función del API SetWindowLong(), pero desgraciadamente esto
no es el caso de los estilos ES_LEFT, ES_CENTER y ES_RIGHT.
Para modificar el comportamiento lo más sencillo es sobrecargar la clase
TEdit. Aqui va un ejemplo que 'a capón' cambia el estilo a alineación
derecha.
CLASS TEdit FROM XEdit
METHOD Create( oParent )
ENDCLASS
METHOD Create( oParent ) CLASS TEdit
::nAlignment := taRIGHT
RETURN Super:Create( oParent )
Un saludo
"Xevi" <xevicomas@terra.es> escribió en el mensaje
news:438dc43d$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
> José Luis,
>
>> En ejecución es de solo lectura. No puedes cambiar su valor. Solo desde
>> el IDE.
> Pues es un defecto de la propiedad, ¿porque no se queja y da error de
> propiedad de solo lectura???
>
> Aunque creo que debería de poderse cambiar la alineación de un
> Edit/Label..., en tiempo de ejecución
> Por ej. yo creo un Edit, lVisible a .F., y dependiendo de lo que necesito
> , lo muestro en unas coordenadas u otras y le doy un valor u otro...
> cuando és un valor numérico, quiero alinearlo a la derecha y si es de
> texto a la izquierda.
> De ser así... y no poder establecer la alineación en tiempo de ejecución,
> me va a obligar tener que insertar dos Edits, y tener que controlar en el
> formulario dos Edits, en lugar de uno... no se, no puede ser muy
> complicado poder alinear en tiempo de ejecución...
>
>
> Un Saludo,
> Xevi.
>
>
> "José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
> news:438dbed6$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Xevi,
>>
>> En ejecución es de solo lectura. No puedes cambiar su valor. Solo desde
>> el IDE.
>>
>> Saludos,
>> José Luis Capel
>>
>> Xevi escribió:
>>> LOGDEBUG( ::oEditRecerca:nAlignment = taLEFT ) //Devuelve .F.
>>> ::oEditRecerca:nAlignment := taLEFT //Cambio la alineación del
>>> texto
>>> LOGDEBUG( ::oEditRecerca:nAlignment = taLEFT ) //Devuelve .T.
>>>
>>> Aunque el segundo LogDebug devuelve .T.... sigue alineandome el texto a
>>> la derecha.
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>>
>>
>
>
>

Cambiar Alineaci

Publicado: Mié Nov 30, 2005 7:27 pm
por ignacio
Xevi,
No muy recomendable, ya que se pierde el orden de TabStop. :-( Pero no supone ninguna sobrecarga.
Un saludo,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:438dc722$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
De momento he "parcheado" destruyendo y contruyendo de nuevo el control...
::oEditRecerca:Destroy()
WITH OBJECT ::oEditRecerca := TMaskEdit():New( ::oTB1 )
:OnKeyDown := { | oSender, nKey, nFlags | ::xEditRecercaKeyDown( oSender, nKey ) }
:lVisible := .F.
:nAlignment := If( nCol = 5, taLEFT, taRIGHT )
:Create()
END
Pero,... ¿eso carga los recursos de la aplicación o no afecta para nada???
Gracias.
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:438dc43d$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
>
> José Luis,
>
>> En ejecución es de solo lectura. No puedes cambiar su valor. Solo desde
>> el IDE.
> Pues es un defecto de la propiedad, ¿porque no se queja y da error de
> propiedad de solo lectura???
>
> Aunque creo que deberí­a de poderse cambiar la alineación de un
> Edit/Label..., en tiempo de ejecución
> Por ej. yo creo un Edit, lVisible a .F., y dependiendo de lo que necesito ,
> lo muestro en unas coordenadas u otras y le doy un valor u otro... cuando és
> un valor numérico, quiero alinearlo a la derecha y si es de texto a la
> izquierda.
> De ser así­... y no poder establecer la alineación en tiempo de ejecución, me
> va a obligar tener que insertar dos Edits, y tener que controlar en el
> formulario dos Edits, en lugar de uno... no se, no puede ser muy complicado
> poder alinear en tiempo de ejecución...
>
>
> Un Saludo,
> Xevi.
>
>
> "José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
> news:438dbed6$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Xevi,
>>
>> En ejecución es de solo lectura. No puedes cambiar su valor. Solo desde
>> el IDE.
>>
>> Saludos,
>> José Luis Capel
>>
>> Xevi escribió:
>>> LOGDEBUG( ::oEditRecerca:nAlignment = taLEFT ) //Devuelve .F.
>>> ::oEditRecerca:nAlignment := taLEFT //Cambio la alineación del
>>> texto
>>> LOGDEBUG( ::oEditRecerca:nAlignment = taLEFT ) //Devuelve .T.
>>>
>>> Aunque el segundo LogDebug devuelve .T.... sigue alineandome el texto a
>>> la derecha.
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>>
>>
>
>
>
>
--

Cambiar Alineaci

Publicado: Jue Dic 01, 2005 9:52 am
por joseluis
Ignacio,
>
> No muy recomendable, ya que se pierde el orden de TabStop. :-( Pero no
> supone ninguna sobrecarga.
>
En el ide... ¿como lo haceis? (Es solo curiosidad)
Saludos,
José Luis Capel

Cambiar Alineaci

Publicado: Jue Dic 01, 2005 10:24 am
por jfgimenez
José Luis,
> En el ide... ¿como lo haceis? (Es solo curiosidad)
Se destruye y se vuelve a crear. Pero claro, en modo diseño en el IDE no
estás navegando con TAB, así que no te das cuenta de que el orden de
tabulación ha cambiado ;-)
Después, al guardar el formulario (el .xfm), el IDE vuelve a ponerlo en su
sitio.
--
Un saludo,
José F. Giménez

Cambiar Alineaci

Publicado: Jue Dic 01, 2005 10:40 am
por joseluis
José,
>
>
> Se destruye y se vuelve a crear. Pero claro, en modo diseño en el IDE no
> estás navegando con TAB, así­ que no te das cuenta de que el orden de
> tabulación ha cambiado ;-)
>
> Después, al guardar el formulario (el .xfm), el IDE vuelve a ponerlo en su
> sitio.
>
>
Gracias por quitarme la curisiodad de encima ;-)
Saludos,
José Luis Capel