AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Clipboard und GlobalLock ergibt Fehler
Thema durchsuchen
Ansicht
Themen-Optionen

Clipboard und GlobalLock ergibt Fehler

Ein Thema von Wapiti · begonnen am 18. Jul 2008 · letzter Beitrag vom 18. Jul 2008
Antwort Antwort
Wapiti

Registriert seit: 26. Jan 2007
15 Beiträge
 
Delphi 2005 Personal
 
#1

Clipboard und GlobalLock ergibt Fehler

  Alt 18. Jul 2008, 13:58
Ich habe mit
Delphi-Quellcode:
Image1.Picture.Bitmap.SaveToClipboardFormat(myFormat, hData, aPalette);
Clipboard.SetAsHandle(myFormat, hData);
ein Bitmap in der Zwischenablage gespeichert.

Ein Zugriff auf
Delphi-Quellcode:
hData // direkt z.B. vor Clipboard.SetAsHandle

  bzw.

hData := Clipboard.GetAsHandle(CF_BITMAP)
  
  bzw.

hData := Clipboard.GetAsHandle(myFormat)
führt ordnungsgemäß zu einem gültigen DIB-Handle, was anderweitig auch korrekt weiterverarbeitet werden kann. Jetzt soll man eigentlich (lt. diversen Webseiten) per
GlobalLock(hData) auf den Speicherbereich (DIB-Stream) zugreifen können, um beispielsweise an den BITMAPINFOHEADER heranzukommen.

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 Seite gestoßen, wo dieser Fehler auch beschrieben wird, was mir aber nicht direkt weiterhilft.

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.
Ralf
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Clipboard und GlobalLock ergibt Fehler

  Alt 18. Jul 2008, 14:06
Moin!

Irrglaube. Nur bei CF_DIB erhälst du einen solches HGLOBAL Handle. Bei CF_BITMAP erhälst du ein HBITMAP Handle.

Einfach mal informieren.

MfG
Muetze1
  Mit Zitat antworten Zitat
Wapiti

Registriert seit: 26. Jan 2007
15 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Clipboard und GlobalLock ergibt Fehler

  Alt 18. Jul 2008, 14:21
Danke.
Delphi-Quellcode:
hData := clipboard.GetAsHandle(CF_DIB);
pbih := PBITMAPINFOHEADER(GlobalLock(hData));
geht fehlerfrei.

Mein Ursprungsproblem funktioniert aber so doch noch nicht, wie ich es dachte. Ich werde mal dazu einen neuen Eintrag aufmachen.
Ralf
  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 16:29 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