AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TImage im Querformat drucken

Ein Thema von soapy · begonnen am 30. Dez 2007 · letzter Beitrag vom 30. Dez 2007
Antwort Antwort
soapy

Registriert seit: 7. Dez 2007
3 Beiträge
 
#1

TImage im Querformat drucken

  Alt 30. Dez 2007, 13:03
Hallo Delphi-Gemeinde

Ich habe ein Problem.
Und zwar habe ich ein Programm geschrieben, das lineare Funktionen berechnet und diese dann ausdruckt.
Das Programm errechnet die lineare Funktion, und stellt sie in einem TImage dar, das ich zusätzlich noch mit einem Koordinatensystem ausgestattet habe.
So klappt alles einwandfrei, druckt auch aus aber leider im Hochformat, sodass immer nur ein Teil der linearen Funktion und des Koordinatensystems angezeigt wird.

Das ist meine Druckroutine:

Delphi-Quellcode:
with Printer do
  begin
    BeginDoc;
    try
      ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
      ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
      RR := Rect(0, 0, Koordinatensystem.picture.Width * scaleX, Koordinatensystem.Picture.Height * ScaleY);
      Canvas.StretchDraw(RR, Koordinatensystem.Picture.Graphic);
    finally
      EndDoc; //Methode EndDoc beendet den aktuellen Druckauftrag und schließt die
    end;
end;
Wie kann ich nun einstellen, dass der Drucker das TImage im Querformat ausdruckt?

Und zum Schluss noch das Programm für euch:
Angehängte Dateien
Dateityp: exe linearefunktion_918.exe (410,0 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: TImage im Querformat drucken

  Alt 30. Dez 2007, 17:14
Hallo,

wenn du in deinem TImage auf das Bitmap zeichnest, könntest du das Bild mit PlgBlt() drucken.
Delphi-Quellcode:
var
  Points: array[0..2] of TPoint;
  scaleX, scaleY: integer;
begin
  Printer.BeginDoc;
  try
    with Koordinatensystem do
    begin
      ScaleX := GetDeviceCaps(Printer.Handle, logPixelsX) div PixelsPerInch;
      ScaleY := GetDeviceCaps(Printer.Handle, logPixelsY) div PixelsPerInch;
      Points[1] := Point(Picture.Graphic.Height* scaleX, Picture.Graphic.Width* scaleY);//rechts oben
      Points[0] := Point(Picture.Graphic.Height* scaleX, 0);//links oben
      Points[2] := Point(0, 0);//links unten
      PlgBlt(Printer.Canvas.Handle, Points, Picture.Bitmap.Canvas.Handle, 0, 0, Picture.Graphic.Width,
        Picture.Graphic.Height, 0, 0, 0);
    end;
  finally
    Printer.EndDoc;
  end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
soapy

Registriert seit: 7. Dez 2007
3 Beiträge
 
#3

Re: TImage im Querformat drucken

  Alt 30. Dez 2007, 17:52
Ich habs jetzt mit ein bisschen Hilfe so gelöst:

Delphi-Quellcode:
var
  ScaleX, ScaleY: Integer;
  RR: TRect;
begin

begin
  with Printer do
  begin
    BeginDoc;
    try
      ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
      ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
      RR := Rect(0, 0, Koordinatensystem.picture.Width * scaleX, Koordinatensystem.Picture.Height * ScaleY);
      Canvas.StretchDraw(RR, Koordinatensystem.Picture.Graphic);
    finally
      EndDoc;
    end;
  Orientation :=poLandscape; //das hat gefehlt... Jetzt fehlts nicht mehr *freu*
  end;
end;
Gruß
Soapy
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#4

Re: TImage im Querformat drucken

  Alt 30. Dez 2007, 19:24
Herzlich Willkommen in der DP
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
soapy

Registriert seit: 7. Dez 2007
3 Beiträge
 
#5

Re: TImage im Querformat drucken

  Alt 30. Dez 2007, 19:53
Dankeschön...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz