Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
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 14-05-2003
Avatar de superhopi
superhopi superhopi is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia
Posts: 128
Poder: 15
superhopi Va por buen camino
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.
__________________
Si me ves durmiendo no me despiertes, podría estar soñando que soy libre.
Responder Con Cita
  #2  
Antiguo 14-05-2003
cadetill cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 18
cadetill Va por buen camino
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

Última edición por cadetill fecha: 14-05-2003 a las 11:10:54.
Responder Con Cita
  #3  
Antiguo 14-05-2003
Avatar de superhopi
superhopi superhopi is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia
Posts: 128
Poder: 15
superhopi Va por buen camino
Talking

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

__________________
Si me ves durmiendo no me despiertes, podría estar soñando que soy libre.
Responder Con Cita
  #4  
Antiguo 16-05-2003
Avatar de superhopi
superhopi superhopi is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia
Posts: 128
Poder: 15
superhopi Va por buen camino
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?
__________________
Si me ves durmiendo no me despiertes, podría estar soñando que soy libre.
Responder Con Cita
  #5  
Antiguo 16-05-2003
cadetill cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 18
cadetill Va por buen camino
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
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


La franja horaria es GMT +2. Ahora son las 19:10:00.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi