PDA

Ver la Versión Completa : el texto a la derecha


cmgenny
09-06-2003, 01:11:26
Holas

Gracias por sus respuestas anteriores son mas que una ayuda, gracias.

Quizas sea una tonteria lo que intento hacer pero lo he intentado de muchas maneras y no me sale. Quiero que el texto de un edit o un mascedit este alineado a la derecha.
Eje.

Se alinean asi /1212121__/ y yo quiero que sea asi /__1212121/

Gracias por su ayuda

Ruben_Cu
09-06-2003, 02:30:03
Hola cmgenny, revisa el truco 167 de trucomania el link es:
http://www.q3.nu/trucomania/ (http://)
Espero te sirva
Saludos

cmgenny
09-06-2003, 06:45:50
Holas

El truco es de como crear un componente de tipo Tedit y darle esta propiedad, eso esta bien. Y si ya tengo mis edit's creados lo unico que necesito es darele estas propiedades. se puede? Ejem porfa.

Muchisimas gracias

marcoszorrilla
09-06-2003, 20:03:29
Prueba con este truco venido de la Galia.


procedure TForm1.Button2Click(Sender: TObject);
begin
SysLocale.MiddleEast := True;
Edit1.BiDiMode := bdRightToLeft;
end;


Un Saludo.

Ruben_Cu
10-06-2003, 02:31:22
Hola Marcos, la puntuación de tu respuesta es 'bestial', que sencillo!!, han puesto la componente escrita en arabe (de derecha a izquierda) y la propiedad BiDiMode remata la solución.
Muy bueno por tí mostrarnos este truco galo debían publicarlo en la sección de trucos del club.
Saludos

delphi.com.ar
10-06-2003, 03:05:39
Una simple observación:

Pese a lo que me suponía, lo he probado y funciona :eek: (no es que desconfíe de ustedes :D). Siempre supuse que como en el medio oriente se escribe de derecha a izquierda, lo que esté en un edit bdLeftToRight como "texto1" sería en bdRightToLeft "1otxet"... ¿Me explico?
Como verdaderamente es, los programas guardan el sus archivos / base de datos, los datos de derecha a izquierda, contrariamente a como se escribe en el resto del mundo, debe ser bastante engorroso compatibilizar los datos entre varios países.


De todos modos, me quedo con la solución anterior... me parece un poco mas "controlada"
TMiEdit = class(TCustomEdit)
...
private
procedure SetAlignment(const Value: TAlignment);
published
...
property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;
end;
...
procedure TMiEdit.CreateParams(var Params: TCreateParams);
const
Alignments: array[TAlignment] of DWord = (ES_LEFT, ES_RIGHT, ES_CENTER);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or Alignments[FAlignment];
end;
...
procedure TMiEdit.SetAlignment(const Value: TAlignment);
begin
if FAlignment <> Value then
begin
FAlignment := Value;
RecreateWnd ;
end;
end;


Saludos!

Patricio
29-05-2006, 16:58:32
Yo usaba el siguiente codigo para la alineacion pero no me andava, hasta que me di cuenta que lo tenia que poner en la creacion del Formulario

SysLocale.MiddleEast := true;
Edit1.BiDiMode := bdRightToLeft

Ahora que efectos colaterales me puede traer, si yo lo utilizo para un formulario en particular y luego lo cierro, ninguno no?