![]() |
DIB aus TBitmap erstellen?
Hallo,
ich teste grad die Virtual Print Engine (VPE) von "IDEAL" Software und stoße hier schon auf die erste Hürde. Scheinbar gibt es in der ganzen API nur eine Funktion, um Bilder NICHT aus einer Datei zu laden und die nennt sich "PictureDIB".
Code:
Nach einer Suche in deren Forum bin ich auf diesen Beitrag gestoßen:
method long VPE.PictureDIB(long Left, long Top, long Right, long Bottom,
IntPtr [long] hDIB, PictureFlags [long] Flags) ![]() Dort meint der Support, dass es möglich ist, eine TBitmap zu drucken, wenn man sie in eine DIB umwandelt, die im "Global Memory" liegt. (Hä?) Nach etwas rumgoogeln bin ich auch nicht schlauer geworden, ganz im Gegenteil. Ich bin auf ![]() Dann habe ich noch das gefunden: ![]() Zitat:
Bei dem ganzen frage ich mich auch, ob das wirklich so eine "IDEAL"e Methode ist, um Bilder an eine Druck-Engine zu übergeben, die über 400,- EUR kostet? Gehts bitte nicht noch komplizierter und zeitverschwenderischer ...? :wall: Würde die Demo nicht so gut aussehen und der Rest den es gibt mich auch nicht überzeugt, wäre das für mich schon ein Grund, diesem Produkt den Rücken zu kehren. Hat jemand Erfahrungen mit der VPE und kann mir mit dem Bitmap->DIB Thema auf die Sprünge helfen? Grüße, Mario |
Re: DIB aus TBitmap erstellen?
Schlag mal in der Delphi-Hilfe TBitmap.HandleType nach.
|
Re: DIB aus TBitmap erstellen?
Zitat:
Hab damit noch nie gearbeitet und der Kommentar von dem "Supporter" da hat mich doch stark verwirrt: "I recommend you google for some source code examples." Edit: Hm, scheint nicht so einfach zu klappen.
Delphi-Quellcode:
Mit der Methode, das Bild erst auf die Platte zu speichern und dann zu laden, klappt es. Da zeigt er mir es auf der Vorschau an. Die zweite Methode jedoch funktioniert nicht. Da krieg ich nur ein leeres durchgekreuztes Quadrat, da wo das Bild sein sollte.
HsReport.OpenDoc;
HsReport.AutoBreakMode := AUTO_BREAK_NO_LIMITS; tmpBmp := TBitmap.Create; tmpBmp.Assign (FClientData.Image); tmpBmp.HandleType := bmDIB; { // Klappt tmpBmp.SaveToFile ('tmp.bmp'); HsReport.Picture(150, 150, VFREE, VFREE, 'tmp.bmp', PIC_KEEPIMAGE + PIC_IN_FILE); } // Klappt nicht HsReport.PictureDIB (100, 100, VFREE, VFREE, tmpBmp.Handle, PIC_KEEPIMAGE + PIC_IN_FILE); HsReport.Preview; Edit 2: Nach weiterem rumlesen in dem Forum scheint die Methode, die Dateien von der Platte zu laden die bessere Methode zu sein. ![]() Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 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