Einzelnen Beitrag anzeigen

Benutzerbild von Bobdimfi
Bobdimfi

Registriert seit: 3. Jan 2003
1 Beiträge
 
Delphi 4 Standard
 
#1

Drucker druckt nur eine Seite

  Alt 20. Nov 2003, 17:27
Hallo,

ich arbeite zur Zeit an einem Programm, um eine Rangliste zu verwalten.

Unter anderem habe ich vor, diese auszudrucken.

Dazu benutze ich folgende Prozedur:

Delphi-Quellcode:
procedure Drucken;
var
  I: Integer;
  X, Y: Integer;
  Breite, Hoehe, Randlinks, Randoben: Integer;
begin
  if PrintDialog1.Execute then
    with Printer do
    begin
      BeginDoc;
      SetMapMode(Canvas.Handle,MM_LOMETRIC); // 1/10 mm

      with Canvas do
      begin
        with Font do
        begin
          Name := 'Courier New';
          Height := 50;
        end;

        Breite := GetDeviceCaps(Handle,HORZSIZE) * 10;
        Hoehe := GetDeviceCaps(Handle,VERTSIZE) * 10;

        Randlinks := 100;
        Randoben := 200;

        Y := -Randoben;

        for I := 0 to ListBox1.Items.Count-1 do
        begin

          if -Y > (Hoehe - 2 * Randoben) then
          begin
            NewPage; // funktioniert nicht
            Y := -Randoben;
          end;

          TextOut(X,Y,ListBox1.Items[I]);

          Y := Y - TextHeight(ListBox1.Items[I]);
        end;
      end;
      EndDoc;
    end;
end;
Ich habe sie ein bisschen vereinfacht (ListBox1 anstatt Listview mit Subitems).

Die erste Seite wird besstens gedruckt, aber seit ich "MapMode" auf MM_LOMETRIC gesetzt habe,
werden alle weiteren Seiten leer ausgeworfen.

An was könnte das denn liegen?
  Mit Zitat antworten Zitat