Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > FireMonkey
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-07-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
  #2  
Antiguo 27-07-2015
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 14
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
  #3  
Antiguo 28-07-2015
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 14
wolfran_hack Va por buen camino
No en Delphi XE8 no funciona. Encontré que se puede hacer con canvas pero no aparece el texto.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  MyRect: TRectF;
  x1, y1, x2, y2: integer;
begin
  x1 := 60;
  y1 := 60;
  x2 := MainImage.Bitmap.Canvas.Width - 60;
  y2 := MainImage.Bitmap.Canvas.Height - 60;
  MyRect := TRectF.Create(x1, y1, x2, y2);
  // fills and draws the text in the specified rectangle area of the canvas
  MainImage.Bitmap.Canvas.BeginScene;
  MainImage.Bitmap.Canvas.FillText(MyRect, TextEdit.Text, false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center);
  MainImage.Bitmap.Canvas.EndScene;
  // updates the bitmap
  //MainImage.Bitmap.BitmapChanged;
end;
Responder Con Cita
  #4  
Antiguo 28-07-2015
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 14
wolfran_hack Va por buen camino
Solucionado con

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
  var
    Rect: TRectF;
  begin
    with Image1.Bitmap do
      begin
        SetSize(Trunc(Image1.Width), Trunc(Image1.Height));
        Clear(TAlphaColors.White);
        Canvas.BeginScene();
        Canvas.Fill.Color := TAlphaColors.Black;
        Canvas.Font.Size := 60;
        Rect.Create(0, 0, Trunc(Image1.Width), Trunc(Image1.Height));
        Canvas.FillText(Rect,
                        Edit1.Text,
                        False,
                        100,
                        [],
                        TTextAlign.Center,
                        TTextAlign.Center);
        Canvas.EndScene();
      end;
  end;
Responder Con Cita
  #5  
Antiguo 28-07-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

Primero que nada me alegra que hayas encontrado una solución

Ignoraba que fuera para aplicar a esa version (y desconozco la misma), pero de tu primer mensaje, había entendido que deseabas reproducir fielmente la fuente del edit.
Y del último código me surge una duda: ¿ De donde o como, logras obtener las propiedades tales como negrita, tamaño, etc. que posee la fuente del TEdit ?

Por ejemplo desconozco la función de la línea:
Código Delphi [-]
Canvas.BeginScene();

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 28-07-2015
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 14
wolfran_hack Va por buen camino
El TCanvas, es para básicamente dibujar, esta en otros lenguajes como CSS y Java, el BeginScene es para comenzar a dibujar y el EndScene indica que termino el dibujo. De igual manera se puede cambiar la fuente, color, tamaño, etc.
Responder Con Cita
  #7  
Antiguo 28-07-2015
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¿Eso es el Canvas estandar de delphi?
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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:49:47.


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