Registriert seit: 22. Apr 2007
91 Beiträge
|
Bestimmung mit GetDeviceCaps die Höhe in Pixeln
6. Jul 2008, 09: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]
|
|
Zitat
|