![]() |
Clipboard und GlobalLock ergibt Fehler
Ich habe mit
Delphi-Quellcode:
ein Bitmap in der Zwischenablage gespeichert.
Image1.Picture.Bitmap.SaveToClipboardFormat(myFormat, hData, aPalette);
Clipboard.SetAsHandle(myFormat, hData); Ein Zugriff auf
Delphi-Quellcode:
führt ordnungsgemäß zu einem gültigen DIB-Handle, was anderweitig auch korrekt weiterverarbeitet werden kann. Jetzt soll man eigentlich (lt. diversen Webseiten) per
hData // direkt z.B. vor Clipboard.SetAsHandle
bzw. hData := Clipboard.GetAsHandle(CF_BITMAP) bzw. hData := Clipboard.GetAsHandle(myFormat)
Delphi-Quellcode:
auf den Speicherbereich (DIB-Stream) zugreifen können, um beispielsweise an den BITMAPINFOHEADER heranzukommen.
GlobalLock(hData)
Dies führt aber stets zu einem Fehler "Das Handle ist ungültig." / "The handle is invalid." Bei allem Suchen bin ich nur auf folgende ![]() Warum das alles: Ich möchte in den Zwischenablagedaten die Auflösung der DIBs einfügen (biXPelsPerMeter und biYPelsPerMeter) um beim Einfügen die richtigen Abmaße auch bei Auflösungen ungleich 72 dpi zu bekommen. IrfanView kann die Auflösung setzen. Beim Import ins Office wird dann die richtige Größe verwendet. Vieleicht gibt es auch eine andere Lösung. |
Re: Clipboard und GlobalLock ergibt Fehler
Moin!
Irrglaube. Nur bei CF_DIB erhälst du einen solches HGLOBAL Handle. Bei CF_BITMAP erhälst du ein HBITMAP Handle. Einfach mal ![]() MfG Muetze1 |
Re: Clipboard und GlobalLock ergibt Fehler
Danke.
Delphi-Quellcode:
geht fehlerfrei.
hData := clipboard.GetAsHandle(CF_DIB);
pbih := PBITMAPINFOHEADER(GlobalLock(hData)); Mein Ursprungsproblem funktioniert aber so doch noch nicht, wie ich es dachte. Ich werde mal dazu einen neuen Eintrag aufmachen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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