Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 01-11-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Dexter182.

Creo que el problema radica en que llamas al TPrintDialog después de haber asignado valores de la impresora asignada. Ejemplo:
Código Delphi [-]
...
AltRenglon   := Printer.Canvas.TextHeight('H') + (Printer.Canvas.TextHeight('H') * 0.2);
...
 If PrintDialog.Execute then begin

      //Define desde que página comenzará la impresión
...

Te pongo este código (el tuyo con algunos cambios) para que lo pruebes:
Código Delphi [-]
procedure TForm1.Imprimir(PD: TPrintDialog; SG: TStringGrid; ED: TEdit);
var
  AltRenglon: Single;
  CantRenglon,Paginas, Fila, i, Y: Integer;
begin
  with Printer do
  begin
    AltRenglon  := Canvas.TextHeight('H') + (Canvas.TextHeight('H') * 0.2);
    CantRenglon := Round(PageHeight / AltRenglon) - 7;
    if SG.RowCount - 1 > CantRenglon then
      Paginas := Ceil((SG.RowCount - 1) / CantRenglon)
    else
      Paginas := 1;

    if PD.FromPage <= 1 then
      Fila := 1
    else
     Fila := ((PD.FromPage - 1) * CantRenglon) + 1;
    BeginDoc;
    try
      while Fila < SG.RowCount do
      begin
        Canvas.Font.Name  := 'Arial';
        Canvas.Font.Size  := 10;
        Canvas.Font.Style := [fsBold, fsUnderline];
        Canvas.TextOut(80,   Round(AltRenglon * 2), 'Descripción');
        Canvas.TextOut(Round(PageWidth * 0.68) - Canvas.TextWidth('Cant.'),
          Round(AltRenglon * 2), 'Cantidad');
        Canvas.TextOut(Round(PageWidth * 0.83) - Canvas.TextWidth('Precio'),
          Round(AltRenglon * 2), 'Precio');
        Canvas.TextOut(PageWidth - 80 - Canvas.TextWidth('Subtotal'),
          Round(AltRenglon * 2), 'Subtotal');
        Canvas.MoveTo(0, Round(AltRenglon * 2.5));
        Canvas.Font.Style := [];
        for i := 1 to CantRenglon do
        begin
          Y :=  Canvas.PenPos.Y + Round(AltRenglon);
          Canvas.TextOut(80, Y, SG.Cells[1, Fila]);
          Canvas.TextOut(Round(PageWidth * 0.68) - Canvas.TextWidth(SG.Cells[2,Fila]),
            Y, SG.Cells[2,Fila]);
          Canvas.TextOut(Round(PageWidth * 0.83) - Canvas.TextWidth(SG.Cells[3,Fila]),
            Y, SG.Cells[3,Fila]);
          Canvas.TextOut(PageWidth - 84 - Canvas.TextWidth(SG.Cells[4,Fila]),
            Y, SG.Cells[4,Fila]);
          Fila := Fila + 1;
        end;
        Canvas.Font.Style := [fsBold];
        Canvas.TextOut(80, PageHeight - Round(AltRenglon * 2 ),
          'Hoja Nº ' + IntToStr(PageNumber));
        Canvas.Font.Size  := 14;
        Canvas.TextOut(PageWidth - 80 - Canvas.TextWidth('TOTAL: ' + ED.Text),
          PageHeight - Round(AltRenglon * 2 ), 'TOTAL: '+ED.Text);
        if PageNumber < Paginas then
          NewPage;
      end;
    finally
      EndDoc;
    end;
  end;
end;

Llamada de prueba:
Código Delphi [-]
procedure TForm1.btnImprimirClick(Sender: TObject);
begin
  if PrintDialog1.Execute then
    Imprimir(PrintDialog1, StringGrid1, Edit1);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
 



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
Imprimiendo labels y facturas principiante22 Varios 6 12-11-2008 21:27:31
Problemas imprimiendo informes.. Paradiso Varios 7 07-03-2008 18:56:57
Mensaje Imprimiendo En Crystal JULIOCTORRESG Internet 0 06-03-2007 20:49:43
Problema imprimiendo con QuickReport 3.0 gamez2809 Impresión 2 22-02-2007 11:21:05
Imprimiendo un listbox....... Rafe Impresión 1 09-08-2005 02:42:04


La franja horaria es GMT +2. Ahora son las 23:24:39.


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
Copyright 1996-2007 Club Delphi