Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   asunto solucionado... (https://www.clubdelphi.com/foros/showthread.php?t=416)

superhopi 14-05-2003 10:56:15

asunto solucionado...
 
tenia un problema con el quick report, asi que he decidido imprimir utilizando la libreria printers. Solo una preguntilla mas:
¿como puedo hacer que pase de linea cuando el texto es mas largo que el folio?

lo que intento que pase de linea es esto:

texto:=memo.text
inc(y, 100);
TextOut(100, y, texto);

Gracias.

__cadetill 14-05-2003 11:08:42

A ver si te sirve esto

Código:

// Suponiendo que caben 50 letras por linea
var str : string;
begin
  str := Memo.Text;
  y := 100; // o el que necesites para inicializar
  while length(str) > 50 do
    begin
        TextOut(100, y, copy(str, 1, 50));
        Delete(str, 1, 50);
        inc(y, 100);
    end;
end;

Este ejemplo supone que caben 50 caracteres por linea. Claro esta que esto funciona bien para tipo de letra de igual tamaño estilo courrier. Para las demas tendrias que hacerlo de forma aproximada.

Tambien deverias de controlar que no rompiera una palabra por la mitad.

Espero te sirva

superhopi 14-05-2003 11:19:25

tio gracias, con unos pequeños cambios me ha salido lo que queria.

:o :p :cool: :eek: :D :) ;)

superhopi 16-05-2003 10:21:14

y que puedo hacer para que si la impresion que voy a llevar a cabo tiene mas de una pagina me imprima las dos paginas?

__cadetill 16-05-2003 11:00:58

Tienes que saber la cantidad de lineas que le caben a la pagina, Entonces, cada vez que imprimes una linea, incrementas una variable contador. Si esta variable contador llega a las lineas maximas de la pagina, haces una llamada a Printer.NewPage

Espero te sirva


La franja horaria es GMT +2. Ahora son las 16:38:32.

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