• Miércoles 15 de Mayo de 2024, 12:32

Autor Tema:  Quickrep Impresion C++ Builder 6.0  (Leído 3462 veces)

nisisantoto

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Quickrep Impresion C++ Builder 6.0
« en: Sábado 19 de Enero de 2008, 22:18 »
0
Necesito imprimir un QuickRep con el Borland... utilizo la función Print() y aparece la ventana "Printing in Progress" pero nada sucede!....
La impresora predeterminada concuerda con la que se envia a imprimir, pero ya reptio, no imprime!...
Luego utilize la funcion Preview() para verificar, pero la vista previa aparece vacia (pantalla en gris), mientrass que en realidad el QRep esta cargado de datos.
Si alguine me ayuda con esta inquitud les voy a agradecer, porq soy novato en esto de imprimir jaja.
Gracias!

el_shanky

  • Miembro MUY activo
  • ***
  • Mensajes: 177
    • Ver Perfil
Re: Quickrep Impresion C++ Builder 6.0
« Respuesta #1 en: Lunes 25 de Febrero de 2008, 09:34 »
0
Buenas no estoy muy familiarizado con el QuickRep pero yo necesité imprimir un Memo y utilizé este código:

Código: Text
  1.  
  2. void __fastcall TForm1::Imprimir1Click(TObject *Sender)
  3. {
  4. man.cargar(); // esta función carga los datos al memo
  5.  
  6. if (PrintDialog1->Execute()) { // Este código imprime el memo (Mostrar->Memo1)
  7.  
  8. Printer()->Canvas->Font = Mostrar->Memo1->Font; //Asignamos la fuente de impresion
  9. int lineHeight = abs(MulDiv(Printer()->Canvas->Font->Size,GetDeviceCaps(Printer()->Handle, LOGPIXELSY), 72)); // determinamos altura de la linea
  10. lineHeight *= 1.4;
  11. int linesPerPage = (Printer()->PageHeight/lineHeight) - 2;
  12. int lineCount = 2; // iniciamos la impresion en la linea 2 para dejar margen (en vez de la 0)
  13.  
  14. Printer()->BeginDoc();
  15. for (int i=0;i < Mostrar->Memo1->Lines->Count;i++) {
  16. if (lineCount++ == linesPerPage) {
  17. lineCount = 2;
  18. Printer()->NewPage();
  19. }
  20. String s = Mostrar->Memo1->Lines->Strings[i];
  21. Printer()->Canvas->TextOut(0, lineCount * lineHeight, s);
  22. }
  23. Printer()->EndDoc();
  24. }
  25. }
  26.  
  27.  
  28.  

Ojo! Mostrar-> es l nobre de mi formulario (Mostrar-> = Form1->


Espero que te sirva! exitos

 :comp:
"La programación hoy en día es una carrera entre los ingenieros de software intentado construir mejores y más eficientes programas a prueba de idiotas y el Universo intentando producir mejores y más grandes idiotas. De lejos, el Universo está ganando." - Rich Cook



http://www.maxcode.com.ar

http://www.shanky.com.ar

Elforious

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Quickrep Impresion C++ Builder 6.0
« Respuesta #2 en: Jueves 13 de Marzo de 2008, 21:30 »
0
Buen algoritmo, es de mucha ayuda, pero tengo una pregunta:

La variable "s" es la que guarda toda una línea del Memo1, y esa es la va imprimiendo antes de saltar a la próxima línea, ¿no es así?

Y la variable i es el número de la línea, no?

Lo que pasa es que esta es la primera vez que veo un algoritmo para imprimir un Memo, y estube desifrandolo :comp:  je.

Gracias por tu atención.

Nota:
Te aconsejo ponerle nombres significativos a las variables que usas, por que si lo haces tu código va a ser más fácil de entender para los demás, incluso para ti si es que no lo ves después de un buen tiempo ;)

el_shanky

  • Miembro MUY activo
  • ***
  • Mensajes: 177
    • Ver Perfil
Re: Quickrep Impresion C++ Builder 6.0
« Respuesta #3 en: Martes 25 de Marzo de 2008, 07:42 »
0
Analizando el codigo un poco puedo decirte que tus intuiciones son acertadas.

"i" es la variable que uso apra mover el for y con ella extraigo la linea del Memo y la asigno a String s, entonces en "s" está el texto a imprimir.

Citar
Nota:
Te aconsejo ponerle nombres significativos a las variables que usas, por que si lo haces tu código va a ser más fácil de entender para los demás, incluso para ti si es que no lo ves después de un buen tiempo
jajaj toda la razón tenes x que leyendo así rápido ni idea tengo ya de que eran las variables!! jaajaja
Igual todos me lo dicen pero como lo documento tanto al codigo x ahí no le doy nombres mas significativos! igual lo voy a tener en cuenta.

Salu2 y disuclpa la tardanza recien lo leo al post! :S
"La programación hoy en día es una carrera entre los ingenieros de software intentado construir mejores y más eficientes programas a prueba de idiotas y el Universo intentando producir mejores y más grandes idiotas. De lejos, el Universo está ganando." - Rich Cook



http://www.maxcode.com.ar

http://www.shanky.com.ar

Elforious

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Quickrep Impresion C++ Builder 6.0
« Respuesta #4 en: Martes 25 de Marzo de 2008, 16:30 »
0
jejeje, lo que me olvide decir es que los nombres significativos en las variables te fomentan la flojera para no documentar tanto el código... :D je! son de mucha ayuda.