Einzelnen Beitrag anzeigen

punker-lili

Registriert seit: 22. Apr 2007
91 Beiträge
 
#1

Bestimmung mit GetDeviceCaps die Höhe in Pixeln

  Alt 6. Jul 2008, 08:51
Hiho.. ich hab folgende Prozedure geshcrieben, damit ich Bilder ausdrucken kann. Leider gibt mir GetDeviceCaps(Printer.Handle,VERTRES) bloß die Spaltenanzahl zurück.. ich bräuchte aberdie Pixel... wie kann ich das ändern?

Delphi-Quellcode:
Procedure DruckPos(iLeft, iTop: integer; Graphic: TGraphic);
var i,breite,hoehe,zoom,start:integer;
begin
//Änderung Breite
  breite := GetDeviceCaps(Printer.Handle, HORZRES);//Bestimmung Blattbreite in Pixel
  zoom:=breite div graphic.Width;
  if zoom = 0 then
   begin
    printer.Orientation:=polandscape;
    breite := GetDeviceCaps(Printer.Handle, HORZRES);//Bestimmung Blattbreite in Pixel
    zoom:= breite div graphic.Width;
    //Meldung abgeben an Benutzer
   end;
//Änderung Höhe
  hoehe:=GetDeviceCaps(Printer.Handle,VERTRES);
    for i:=0 to (graphic.Height div hoehe) do
     begin
      start:= itop+i*GetDeviceCaps(Printer.Handle,VERTRES);
      SetWindowOrgEx(Printer.Handle,iLeft,start,nil);
      Printer.BeginDoc;
      SetMapMode(Printer.Canvas.Handle, MM_ISOTROPIC);
      SetWindowExtEx(Printer.Canvas.Handle, 1, 1, nil);
      SetViewportExtEx(Printer.Canvas.Handle, Zoom, Zoom, nil);
      Printer.Canvas.Draw(iLeft, iTop, Graphic);
      Printer.EndDoc;
     end;
end;

MfG Anna

[edit=Matze][delphi]-Tags eingefügt. Zukünftig bitte selbst daran denken. MfG, Matze[/edit]
  Mit Zitat antworten Zitat