AGB  ·  Datenschutz  ·  Impressum  







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

Ein Bereich einer Form drucken?

Ein Thema von smart · begonnen am 30. Apr 2006 · letzter Beitrag vom 30. Apr 2006
 
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Ein Bereich einer Form drucken?

  Alt 30. Apr 2006, 17:32
Also vielleicht verstehe ich dein Problem einfach nur falsch, aber worin liegt es genau?
Also ich kenne nicht mehr die Artikel der DP zum Thema ausdruck, aber um es mal kurz zu fassen, du arbeitest einfach nur mit einem Canvas. Ob dies nun von einem Drucker kommt oder nicht kann dir dank OOP vollkommen egal sein. Wie man mit einem Canvas arbeitet weißt du sicherlich aus Arbeiten mit Bitmaps (ansonsten wirst du dazu sicherlich eine Menge im Netz finden).
Wenn du die Bedienelemente nicht möchtest, dann kopier sie einfach nicht mit.
Wie du das Form kopierst denke ich weißt du schon (wenn ich dich richtig verstanden habe). Wenn du nun nicht den gesamten Bereich eines Bildes möchtest, dann gibt es die Funktion BitBlt (und viele andere), mit der kannst du den Inhalt eines Canvas auf ein anderes kopieren. Dazu übergibst du das Handle des Ziels, die Ziel X, Y Koordinaten, Breite und Höhe des Ziels, das Handle der Quelle und hier die Startkoordinaten sowie den Modus (wie kopiert wird).
Wenn du nun also weißt wie groß das zu kopierende Image (das große im Hintergrund ist) und wo dieses anfängt, kannst du dir leicht eine Bitmap erstellen, die dessen größe besitzt und den entsprechenden Ausschnitt der Form reinkopieren

Delphi-Quellcode:
var formBitmap : TBitmap;
    target : TBitmap;
begin
  // wie auch immer du dir dein Form als Bitmap holst
  formBitmap := getFormAsBitmap;
  
  // ziel mit Größe der Bitmap, auf der die kleinen liegen
  target := TBitmap.Create;
  target.Width := self.ImageBackground.Width;
  target.Height := self.ImageBackground.Height;
  
  BitBlt(target.Canvas.Handle, 0, 0, target.Width, target.Height, formBitmap.Canvas.Handle, self.ImageBackground.Left, self.ImageBackground.Top, SRCCOPY);
  // und jetzt drucken
  ...
end;
  Mit Zitat antworten Zitat
 


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 02:05 Uhr.
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