Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Formular zentriert ausdrucken (https://www.delphipraxis.net/154485-formular-zentriert-ausdrucken.html)

Metallicwar 13. Sep 2010 15:23

AW: Formular zentriert ausdrucken
 
habs mit folgender procedure versucht:
Delphi-Quellcode:
procedure SetCanvasZoomFactor(Canvas: TCanvas; AZoomFactor: Integer);
begin
  if AZoomFactor = 100 then
    SetMapMode(Canvas.Handle, MM_TEXT)
  else
  begin
    SetMapMode(Canvas.Handle, MM_ISOTROPIC);
    SetWindowExtEx(Canvas.Handle, 100,100, nil);
    SetViewportExtEx(Canvas.Handle,AZoomFactor, AZoomFactor, nil);
  end;
end;
dazu habe ich
Delphi-Quellcode:
procedure SetCanvasZoomFactor(Canvas: TCanvas; AZoomFactor: Integer);
in den interface Bereich zu den anderen proceduren geschrieben und unten einfach den gesamten Code eingefügt und in meinem Bereich wo das Formular gedruck wird folgendes:
Delphi-Quellcode:
SetCanvasZoomFactor(Printer.canvas,70);
ABER: Das Projekt wird nochnichteinmal kompiliert.
Code:
Ungenügend Forward -oder External-Deklerationen: TForm1.SetCanvasZoomFactor

DeddyH 13. Sep 2010 15:31

AW: Formular zentriert ausdrucken
 
Du hast es im interface-Teil wahrscheinlich als Methode der Form deklariert.

Metallicwar 13. Sep 2010 15:43

AW: Formular zentriert ausdrucken
 
ich Depp ^^ :D
Delphi-Quellcode:
        begin
        with Printer do
          begin
            BeginDoc;
          try
            bitmapFormular := Formular.GetFormImage;
            X := (Printer.PageWidth - bitmapFormular.Width) div 2;
            Y:= (Printer.PageHeight - bitmapFormular.Height) div 2;
            Printer.Canvas.Draw(X,Y,bitmapFormular);
            SetCanvasZoomFactor(Printer.canvas,70);
          finally
            EndDoc;
          end;
nur wird mein Formular genauso ausgedruckt wie zuvor auch.


Delphi-Quellcode:
procedure SetCanvasZoomFactor(Canvas: TCanvas; AZoomFactor: Integer);
begin
  if AZoomFactor = 100 then
    SetMapMode(Canvas.Handle, MM_TEXT)
  else
  begin
    SetMapMode(Canvas.Handle, MM_ISOTROPIC);
    SetWindowExtEx(Canvas.Handle, 100,100, nil);
    SetViewportExtEx(Canvas.Handle,AZoomFactor, AZoomFactor, nil);
  end;
end;

DeddyH 13. Sep 2010 16:04

AW: Formular zentriert ausdrucken
 
Ich würde ja vor der Berechnung und Ausgabe den Zoomfaktor setzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz