AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Bitmap von DirectX will nicht in die Zwischenablage
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmap von DirectX will nicht in die Zwischenablage

Ein Thema von KodeZwerg · begonnen am 17. Okt 2022 · letzter Beitrag vom 17. Okt 2022
 
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.690 Beiträge
 
Delphi 11 Alexandria
 
#1

Bitmap von DirectX will nicht in die Zwischenablage

  Alt 17. Okt 2022, 12:59
In dieser Post zeigte ich wie ich ein Bild erstelle.
Jetzt wollte ich etwas total simples machen, dieses Bild in die Zwischenablage einfügen um damit Global eine Möglichkeit zu haben es irgendwo einzufügen.
Bei einem TBitmap generiert mit der GDI-Technik (BitBlt) funktioniert es, bei einem TBitmap generiert mit der DirectX Variante tut sich gar nichts.
Auf diese Weise wollte ich ans Ziel kommen: (FBitmap ist ein TBitmap)
Delphi-Quellcode:
procedure TkzSnapShot.CopyToClipboard;
var
{
  DataStream: TMemoryStream;
  Data: Pointer;
  DataHandle: THandle;
}

  Image: TImage;
begin
  Image := TImage.Create(Self.Owner);
  try
    Image.Picture.Bitmap.Assign(FBitmap);
    Image.Invalidate;
    Clipboard.Assign(Image.Picture.Graphic);
  finally
    Image.Free;
  end;
(*
  //MessageBox(0, 'CopyToClipboard', 'CopyToClipboard', MB_OK);
  DataStream := TMemoryStream.Create;
  try
    FImage.SaveToStream(DataStream);

    DataHandle := GlobalAlloc(GHND or GMEM_SHARE, DataStream.Size);
    try
      Data := GlobalLock(DataHandle);
      try
        DataStream.Position := 0;
        DataStream.ReadBuffer(Data^, DataStream.Size);
      finally
        GlobalUnlock(DataHandle);
        if OpenClipboard(0) then
          begin
            EmptyClipboard;
            SetClipboardData(FClipboardFormat, DataHandle);
            CloseClipboard;
          end;
      end;
    except
      GlobalFree(DataHandle);
      Raise;
    end;
  finally
    DataStream.Free;
  end;
*)

end;
Leider funktioniert weder das reguläre noch wenn ich die Daten roh sende.
Was übersehe ich hier?
Gruß vom KodeZwerg
  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 10:09 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