Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-10-2007
Peterlolazo Peterlolazo is offline
Miembro
 
Registrado: oct 2007
Posts: 10
Poder: 0
Peterlolazo Va por buen camino
Question Necesito Ayuda con Printer.Canvas !!!

necesito ayuda!!! estoy haciendo un programa cuyo fin es imprimir los datos que se introduscan en edits, y no deben salir los edits vacios, pero si no lleno los edits con datos sale el espacio en blanco en la pagina, y como son muchos edits los que siempre se dejan en blanco, queda muchisimo espacio en la hoja, ¿como hago para que en la impresion solo me salgan ordenaditos los edits llenados con datos uno debajo del otro? ejemplo para que entiendan mejor.
Código Delphi [-]
If principal.Edit6.text<> '' then
Printer.Canvas.textout(2500,690,principal.Edit6.text );

If principal.Edit7.text<> '' then
Printer.Canvas.textout(2500,780,principal.Edit7.text);

If principal.Edit5.text<> '' then
Printer.Canvas.textout(2500,870,principal.Edit5.text );

lo que sucede es que si no lleno el edit7 me queda todo ese espacio vacio... ayuda, el edit 5 deberia tomar el lugar del 7... son como 70 edits!!!.

Última edición por Peterlolazo fecha: 18-10-2007 a las 12:05:51.
Responder Con Cita
  #2  
Antiguo 18-10-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Bienvenido al foro.
A ver si así vale:

Código Delphi [-]

procedure TPrincipal.Button1Click(Sender: TObject);
Var I ,X , Y : integer;
begin
X := 2500;
Y := 900;
For I := 0 to Principal.ControlCount -1 DO
  If Principal.Controls[i] is TEdit then
    if TEdit(Principal.Controls[i]).Text <> ''then
      Begin
         Printer.Canvas.textout(X,Y,TEdit(Principal.Controls[i]).Text);
         Inc(Y,900);
      End;

end;
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #3  
Antiguo 18-10-2007
Peterlolazo Peterlolazo is offline
Miembro
 
Registrado: oct 2007
Posts: 10
Poder: 0
Peterlolazo Va por buen camino
:d

Hasta ahora Esta Funcionando de maravilla. Solo que tengo que Imprimir Varios Labels tambien al lado de esos Edits. pero y ame imagino mas o menos como los tengo que hacer... Por ahora Gracias por la Ayuda

Pero por si acaso... Cada uno de esos Edits tiene un Label a la Derecha y otro a la Izquierda.... Como logro que se impriman los Labels al lado del Edit Correspondiente?

Última edición por Peterlolazo fecha: 18-10-2007 a las 12:37:02.
Responder Con Cita
  #4  
Antiguo 18-10-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Por si acaso, inténtalo primero, y luego veremos si hay problemas.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #5  
Antiguo 18-10-2007
Peterlolazo Peterlolazo is offline
Miembro
 
Registrado: oct 2007
Posts: 10
Poder: 0
Peterlolazo Va por buen camino
Plz

Pues la verdad lo puse pork ya lo intente y no pude hacerlo...
Lo unico que creo poder hacer es Ponerle una Underline a todo eso....
que se hace con
Código Delphi [-]
Printer.Canvas.MoveTo(x,y);
 Printer.Canvas.LineTo(x,y);

Pero ya seguro que lo sabes

Por ejemplo. Tome el Codigo que me mandaste hace un rato y mira lo que hice...

Código Delphi [-]

procedure THematologia.Button2Click(Sender: TObject);


Var I ,X , Y: integer;
begin
X := 2000;
Y := 900;


        Printer.BeginDoc;
For I := 0 to ControlCount -1 DO
  If Controls[i] is TEdit then
    if TEdit(Controls[i]).Text <> ''then
      Begin

         Printer.Canvas.textout(X,Y,TEdit(Controls[i]).Text);

    Inc(Y,100);

    Printer.Canvas.MoveTo(40,y);

    Printer.Canvas.LineTo(Printer.PageWidth-20,y);

         Inc(Y,100);

      End;
                  Printer.EndDoc;

    end;


end.

Última edición por Peterlolazo fecha: 18-10-2007 a las 12:46:30.
Responder Con Cita
  #6  
Antiguo 19-10-2007
Peterlolazo Peterlolazo is offline
Miembro
 
Registrado: oct 2007
Posts: 10
Poder: 0
Peterlolazo Va por buen camino
Yeah!

Bueno Gracias Por todo Ardilla. Ya lo hice

Unos Codigos ALgo arcaicos debo agregar.. Pero el caso es que lo haga :P
Responder Con Cita
  #7  
Antiguo 19-10-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Ok.
Solamente es cuestión de intentarlo.

PD: No es muy sano requerir estas cuestiones en mensajes privados ni por email.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
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
Vista previa de Printer.Canvas JOMABRI Impresión 2 03-01-2007 02:33:17
Printer.Canvas Imprime Basura berna Impresión 0 09-07-2004 19:31:15
Impresión lenta en Printer.Canvas JOMABRI Impresión 3 30-06-2004 14:13:13
largo de pagina, impresion en Printer.Canvas jac000y Impresión 1 22-12-2003 17:29:14
Necesito Ayuda JavierVV Varios 2 22-10-2003 13:14:06


La franja horaria es GMT +2. Ahora son las 18:33:24.


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