Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-07-2015
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 12
wolfran_hack Va por buen camino
Texto de Edit a Image BMP?

Tenemos un Edit que tiene un texto, por ejemplo un numero y necesitamos que ese numero se aplique a un Image o bmp con negrita y demás para ser impreso. Esto es posible?
Responder Con Cita
  #2  
Antiguo 27-07-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Necesitas si o si la imagen? No podes usar un RichEdit?
Responder Con Cita
  #3  
Antiguo 27-07-2015
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 12
wolfran_hack Va por buen camino
si tiene que ser una imagen porque el printer de delphi xe no se pasa a multiplataforma y solo logre imprimir bmp
Responder Con Cita
  #4  
Antiguo 27-07-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
No soy ningun experto pero proba con esto

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    PaintBox1: TPaintBox;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  // dibujar texto del edit en el paintbox
  PaintBox1.Canvas.Font.Style := [fsBold];
  PaintBox1.Canvas.Font.Name := 'Calibri';
  PaintBox1.Canvas.Font.Size := 190;
  PaintBox1.Color := clWhite;
  PaintBox1.Canvas.Rectangle(0, 0, PaintBox1.Width, PaintBox1.Height);
  PaintBox1.Canvas.TextOut(PaintBox1.Width div 4, 1, Edit1.Text);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  FImage: TBitmap;
  FDest, FSource: TRect;
begin
  // guardar la imagen generada
  FImage := TBitmap.Create;
  try
    FImage.Height := PaintBox1.Height;
    FImage.Width := PaintBox1.Width;
    FDest := Rect(0, 0, FImage.Width, FImage.Height);
    FSource := Rect(0, 0, PaintBox1.Width, PaintBox1.Height);
    FImage.Canvas.CopyRect(FDest, PaintBox1.Canvas, FSource);
    // guardar la imagen..
    FImage.SaveToFile('test.bmp');
  finally
    FImage.Free;
  end;
end;

end.
Responder Con Cita
  #5  
Antiguo 27-07-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola wolfran_hack.

Otra opción:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Color      := clSilver; // (*)
  Edit1.Font.Name  := 'Segoe Print';
  Edit1.Font.Size  := 12;
  Edit1.Font.Style := Edit1.Font.Style + [fsBold];
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  bm : TBitmap;
  cc : TControlCanvas;
  sz : TSize;
begin
  bm := Image1.Picture.Bitmap;
  cc := TControlCanvas.Create;
  try
    cc.control :=  Edit1;
    cc.Font.Assign(Edit1.Font);
    bm.Width  := cc.ClipRect.Right;
    bm.Height := cc.ClipRect.Bottom;
    GetTextExtentPoint32(cc.Handle, PChar(Edit1.Text), Length(Edit1.Text), sz);
    BitBlt(bm.Canvas.Handle, 0, 0, sz.cx, sz.cy, cc.Handle, 0, 0, SRCCOPY);
  finally
    cc.free;
  end;
end;
(*) El color clSilver es a fin de resaltar el área de lo copiado.

Salida:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 27-07-2015 a las 21:49:04.
Responder Con Cita
  #6  
Antiguo 27-07-2015
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 12
wolfran_hack Va por buen camino
@ecfisa: Mil gracias, es exactamente lo que estaba buscando. Le agrego un .Picture Nil para limpiarla y volver a generarla.

Código Delphi [-]
  sz : TSize;
begin
  Image1.Picture := nil;
  bm := Image1.Picture.Bitmap;

Por ahora en Delphi7 funciona, luego probare en el DelphiXE8 haber como funciona.
Responder Con Cita
Respuesta



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
El objeto image sobre otra image CarlosAlberto Varios 2 26-01-2013 00:27:54
comparar un texto de un listbox con un texto de un edit juaarias Varios 1 04-10-2011 01:13:10
Hacer Drag&Drop desde otro programa a texto (RichEdit) o imagen (Image) en mi program rrf Varios 2 24-02-2009 14:38:06
Image Edit Grushenka Varios 0 29-10-2008 13:54:34
¿Cómo gestionar una bd de acces, que contiene un campo de texto y otro con una image? Acuarius3000 Conexión con bases de datos 1 17-01-2005 09:45:33


La franja horaria es GMT +2. Ahora son las 03:20:26.


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
Copyright 1996-2007 Club Delphi