Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #25  
Antiguo 23-08-2016
Avatar de cl2raul
cl2raul cl2raul is offline
Miembro
 
Registrado: sep 2008
Ubicación: La Habana, Cuba
Posts: 88
Poder: 18
cl2raul Va por buen camino
Gracias a todos los involucrador, ya solucione el problema, segui el prosedimiento con el objetivo de eliminar [TFillTextFlag.RightToLeft] que era el responsable de priorizar las letras a los números causando la no esperada respuesta, como en la unidad FMX.Graphics esla que contienes el procedimiento TCanvas.FillText(), cree mi version del procedimiento para ver resultado esperado (100 dias)=(100 dias), a continuacion la unidad, ojo hay q agregar al uses FMX.TextLayout;

Código Delphi [-]
unit main;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects,
  FMX.StdCtrls, FMX.Controls.Presentation, FMX.Edit, FMX.Layouts;

type
  TTextInImage = class(TForm)
    Image1: TImage;
    Layout1: TLayout;
    Edit1: TEdit;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  TextInImage: TTextInImage;

implementation

{$R *.fmx}

uses FMX.TextLayout;

procedure TextInImg(const ARect: TRectF; const AText: string; LaImagen: TCanvas;
  const WordWrap: Boolean; const AOpacity: Single; const ATextAlign, AVTextAlign: TTextAlign);
var
  Layout: TTextLayout;
begin
  Layout := TTextLayoutManager.TextLayoutByCanvas(LaImagen.ClassType).Create(LaImagen);
  try
    Layout.BeginUpdate;
    Layout.TopLeft:=ARect.TopLeft;
    Layout.MaxSize:=PointF(ARect.Width, ARect.Height);
    Layout.Text:=AText;
    Layout.WordWrap:=WordWrap;
    Layout.Opacity:=AOpacity;
    Layout.HorizontalAlign:=ATextAlign;
    Layout.VerticalAlign:=AVTextAlign;
    Layout.Font:=LaImagen.Font;
    Layout.Color:=LaImagen.Fill.Color;
    //Layout.RightToLeft := TFillTextFlag.RightToLeft in Flags;
    Layout.EndUpdate;
    Layout.RenderLayout(LaImagen);
  finally
    FreeAndNil(Layout);
  end;
end;

procedure TTextInImage.Button1Click(Sender: TObject);
var
  MyRect: TRectF;
  x1, y1, x2, y2, I: integer;
begin
  x1 := 60;
  y1 := 60;
  x2 := Image1.Bitmap.Canvas.Width - 60;
  y2 := Image1.Bitmap.Canvas.Height - 60;

  MyRect := TRectF.Create(x1, y1, x2, y2);

  Image1.Bitmap.Canvas.BeginScene;
  Image1.Bitmap.Canvas.Font.Family:='Arial';
  Image1.Bitmap.Canvas.Font.Size:=48;

  TextInImg(MyRect,Edit1.Text,Image1.Bitmap.Canvas,True,100,TTextAlign.Center,TTextAlign.Center);

  Image1.Bitmap.Canvas.EndScene;
end;

procedure TTextInImage.FormCreate(Sender: TObject);
begin
  Image1.Bitmap.LoadFromFile(GetCurrentDir+'\p10.png');
end;

end.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como agregar texto a un listview kurono Varios 4 10-11-2009 04:23:23
Agregar texto con canvas a Timage pablopessoa Varios 4 22-11-2008 16:10:43
Bitmap a texto y texto a bitmap kotai Gráficos 15 16-01-2008 06:02:31
Agregar texto a un formulario al presionar un boton. D-MO HTML, Javascript y otros 4 26-12-2005 20:03:49
Agregar Texto a un TImage animal Gráficos 1 22-02-2005 13:18:28


La franja horaria es GMT +2. Ahora son las 23:42:42.


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