Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Necesito Ayuda con Printer.Canvas !!! (https://www.clubdelphi.com/foros/showthread.php?t=49309)

Peterlolazo 18-10-2007 11:58:54

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!!!.

ArdiIIa 18-10-2007 12:14:25

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;

Peterlolazo 18-10-2007 12:30:38

: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?

ArdiIIa 18-10-2007 12:39:31

Por si acaso, inténtalo primero, y luego veremos si hay problemas.:D

Peterlolazo 18-10-2007 12:41:35

Plz
 
Pues la verdad lo puse pork ya lo intente :D 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.

Peterlolazo 19-10-2007 05:05:00

Yeah!
 
Bueno Gracias Por todo Ardilla. Ya lo hice :cool:

Unos Codigos ALgo arcaicos debo agregar.. Pero el caso es que lo haga :P

ArdiIIa 19-10-2007 10:25:57

Ok.
Solamente es cuestión de intentarlo.

PD: No es muy sano requerir estas cuestiones en mensajes privados ni por email.


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

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