Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   el texto a la derecha (https://www.clubdelphi.com/foros/showthread.php?t=1235)

cmgenny 09-06-2003 01:11:26

el texto a la derecha
 
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/
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.

Código:

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"
Código:

  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

aclaracion y pregunta
 
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?


La franja horaria es GMT +2. Ahora son las 15:47:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi