Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-01-2011
JorgeDiaz JorgeDiaz is offline
Miembro
NULL
 
Registrado: ene 2011
Posts: 15
Poder: 0
JorgeDiaz Va por buen camino
Boton para imprimir tmemo

Buenos dias, quisiera saber como poner un boton para que al darle click, poder imprimir mi TMemo, garcias.
Responder Con Cita
  #2  
Antiguo 14-01-2011
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 Jorge.

Poner un botón y asignar evento OnClick: Desde la paleta de componentes pone un TButton en el Form. Seleccionado el TButton,
hacé click sobre la pestaña events, doble click sobre el evento OnClick.

Imprimir: Existe más de una forma hacerlo, ya sea que uses algún Report, o mediante la unit Printers.

Te pongo un ejemplo de como imprimir del último modo:
Código Delphi [-]
...
uses Printers;

procedure Imprimir(TS : TStrings) ;
var
  i: Integer;
  Linea: Integer;
begin
  Linea := 0 ;
  Printer.BeginDoc;
  for i := 0 to TS.Count - 1 do
  begin
    Printer.Canvas.TextOut(0, Linea, TS[i]);
    Linea := Linea + Abs(Printer.Canvas.Font.Height);
    if (Linea >= Printer.PageHeight) then
      Printer.NewPage;
  end;
  Printer.EndDoc;
end;

Llamada:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  Imprimir(Memo1.Lines);
end;

Saludos.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 14-01-2011 a las 22:16:21.
Responder Con Cita
  #3  
Antiguo 14-01-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Bueno, aparte de lo dicho por el Maestro ecfisa:
Para poner un boton se tiene que hacer con mucho cuidado.
Aqui pongo un ejemplito con QReport.
Saludos
__________________
Siempre Novato

Última edición por Caral fecha: 03-02-2011 a las 01:07:39.
Responder Con Cita
  #4  
Antiguo 14-01-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo recordar que también puedes poner el botón y al pulsarlo:

memo1.print('');

Se acabó.
Responder Con Cita
  #5  
Antiguo 14-01-2011
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
Cita:
Empezado por Caral Ver Mensaje
Hola
Para poner un boton se tiene que hacer con mucho cuidado.
Una afirmación que difícilmente se pueda superar...

Un saludo.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 14-01-2011 a las 20:36:54.
Responder Con Cita
  #6  
Antiguo 14-01-2011
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 Casimiro.

También fué lo primero que pensé, pero esa propiedad aparentemente la tiene el RichEdit pero no el Memo.

Habría que probar si funciona:
Código Delphi [-]
TRichEdit(Memo1).Print('');
Luego te comento.

Un saludo.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 14-01-2011 a las 20:43:30.
Responder Con Cita
  #7  
Antiguo 14-01-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Ya decia yo que eso no me lo habian enseñado...
Saludos amigos.
__________________
Siempre Novato
Responder Con Cita
  #8  
Antiguo 14-01-2011
JorgeDiaz JorgeDiaz is offline
Miembro
NULL
 
Registrado: ene 2011
Posts: 15
Poder: 0
JorgeDiaz Va por buen camino
Gracias por las respuestas, tratare de hacerlo haber si me sale, ya que soy nuevo en esto, comentare despues, gracias.
Responder Con Cita
  #9  
Antiguo 14-01-2011
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 de nuevo.

La sentencia
Código Delphi [-]
TRichEdit(Memo1).Print('');

definitivamente no funciona.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 14-01-2011
JorgeDiaz JorgeDiaz is offline
Miembro
NULL
 
Registrado: ene 2011
Posts: 15
Poder: 0
JorgeDiaz Va por buen camino
Bueno puse un Tbutton en el form y puse esto

procedure TForm1.Button1Click(Sender: TObject);
begin
Imprimir(Memo1.Lines);
end;

Pero cuando le doy Run, no me manda el fom, me mande de nuevo a lo que escribi peroesta linea en rojo

Imprimir(Memo1.Lines);

Estoy haciendo algo mal?
Responder Con Cita
  #11  
Antiguo 14-01-2011
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.

Si pusiste el TButton con su evento asignado, el TMemo con algún contenido y el procedimiento 'Imprimir', tendría que funcionar.

¿ Te arroja algún error ?

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #12  
Antiguo 14-01-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ecfisa Ver Mensaje
Hola de nuevo.
La sentencia
Código Delphi [-]TRichEdit(Memo1).Print('');


definitivamente no funciona.

Un saludo.
Añade ComCtrls al uses y prueba:
Código Delphi [-]
TRichEdit(mm1).Print('');
Responder Con Cita
  #13  
Antiguo 14-01-2011
JorgeDiaz JorgeDiaz is offline
Miembro
NULL
 
Registrado: ene 2011
Posts: 15
Poder: 0
JorgeDiaz Va por buen camino
Esto es lo que hice, inicie un nuevo proyecto, inserte un Tmemo, despues inserte un TButton, hize doble click en el TButton y me mando a la ventana con esto

procedure TForm1.Button1Click(Sender: TObject);
begin

end;

despues agregue lo que me mencionaron, Imprimir(Memo1.Lines);
y me quedo asi

procedure TForm1.Button1Click(Sender: TObject);
begin
Imprimir(Memo1.Lines);
end;

Y al darle Run me hace lo que mencione antes la linea en donde esta ¨"Imprimir(Memo1.Lines);" esta en color rojo
Responder Con Cita
  #14  
Antiguo 14-01-2011
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 Jorge.

Me dá la impresión de que tenés puesto un Break en esa línea ( un círculo rojo sobre el márgen del editor ).

Si es así hacé click sobre él, desaparecerá y continuará la ejecución del programa.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #15  
Antiguo 14-01-2011
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
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Añade ComCtrls al uses y prueba:
Código Delphi [-]
TRichEdit(mm1).Print('');
Hola Casimiro.

Este es el código que usé para la prueba:
Código Delphi [-]
...
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, StdCtrls, ComCtrls, Dialogs;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button2: TButton;
    procedure FormShow(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

uses Printers;

procedure TForm1.FormShow(Sender: TObject);
begin
   Memo1.Lines.LoadFromFile('C:\PRUEBA.TXT');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  TRichEdit(Memo1).Print('');
end;
...

Me dá violación de acceso, no sé que pueda estar fallando (o faltando)...

¿ Le haces algúna conversión previa ?

Un saludo.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 14-01-2011 a las 21:30:25.
Responder Con Cita
  #16  
Antiguo 14-01-2011
JorgeDiaz JorgeDiaz is offline
Miembro
NULL
 
Registrado: ene 2011
Posts: 15
Poder: 0
JorgeDiaz Va por buen camino
Sera acaso que la version que tengo esta en ingles? digo por lo de "Imprimir" en el codigo que pongo.

y no la verdad no encuentro eso del break que me dices.

Última edición por ecfisa fecha: 14-01-2011 a las 22:06:15. Razón: Remoción de dirección de correo privado
Responder Con Cita
  #17  
Antiguo 14-01-2011
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 Jorge.

No, no tiene nada que ver el nombre del procedimiento; puede ser el que gustes.

Te pongo el código completo que usé para la prueba ( funciona bién ), a ver si te sirve:
Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure FormShow(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

uses Printers;

procedure TForm1.FormShow(Sender: TObject);
begin
   Memo1.Lines.LoadFromFile('C:\PRUEBA.TXT');
end;

procedure Imprimir(TS : TStrings);
var
  i: Integer;
  Linea: Integer;
begin
  Linea := 0 ;
  Printer.BeginDoc;
  for i := 0 to TS.Count - 1 do
  begin
    Printer.Canvas.TextOut(0, Linea, TS[i]);
    Linea := Linea + Abs(Printer.Canvas.Font.Height);
    if (Linea >= Printer.PageHeight) then
      Printer.NewPage;
  end;
  Printer.EndDoc;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Imprimir(Memo1.Lines);
end;

end.

Nota: Si lees la guia de estilo verás que dice: "No solicites que te respondan por correo en privado".

Uno: Las respuestas en privado no sirven a otros compañeros.
Dos: Te van a llenar de spam.

Un saludo.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 14-01-2011 a las 22:16:40.
Responder Con Cita
  #18  
Antiguo 14-01-2011
JorgeDiaz JorgeDiaz is offline
Miembro
NULL
 
Registrado: ene 2011
Posts: 15
Poder: 0
JorgeDiaz Va por buen camino
Todo este codigo en donde lo tengo que inserta, disculpa mi ignorancia.
Responder Con Cita
  #19  
Antiguo 14-01-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Ahora pregunto:
Este codigo funciona pero imprime directamente, osea se necesita tener conectada la impresora etc.?
Lo digo por que a mi se me traba, no hace nada, eso si, no tengo la impresora conectada.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #20  
Antiguo 14-01-2011
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
Cita:
Empezado por Caral Ver Mensaje
Hola
Ahora pregunto:
Este codigo funciona pero imprime directamente, osea se necesita tener conectada la impresora etc.?
Lo digo por que a mi se me traba, no hace nada, eso si, no tengo la impresora conectada.
Saludos
Si así es.
Era sólo un ejemplo, habría que agregar las comprobaciones necesarias para detectar la impresora.

Indudablemente le sería más simple utilizar el ejemplo de QReport que adjuntaste.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
deshabilitar el boton imprimir de word desde delphi ingabraham Varios 3 07-07-2010 17:52:31
Boton Imprimir de la vista previa javierin_ Impresión 3 19-04-2007 12:54:27
Imprimir varios campos Tmemo en un mismo reporte mbguantay Impresión 1 22-03-2007 16:59:34
boton imprimir en el Olecontainer kanyrosana Conexión con bases de datos 0 23-10-2006 22:03:59
Imprimir texto de un TMemo ixMike Impresión 0 10-10-2006 19:19:02


La franja horaria es GMT +2. Ahora son las 04:34:37.


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