Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#3

AW: Bitmap von DirectX will nicht in die Zwischenablage

  Alt 17. Okt 2022, 15:57
Zitat:
Delphi-Quellcode:
  Image := TImage.Create(Self.Owner);
  try
    Image.Picture.Bitmap.Assign(FBitmap);
    Image.Invalidate;
    Clipboard.Assign(Image.Picture.Graphic);
  finally
    Image.Free;
  end;
Effektiv macht dein Code das hier
Clipboard.Assign(FBitmap);

Invalidate macht nichts, das das TImage eh nicht sichtbar ist

Delphi-Quellcode:
Image := TImage.Create(Self.Owner);
try
  Image.Picture.Bitmap.Assign(FBitmap);
  Clipboard.Assign(Image.Picture.Graphic);
finally
  Image.Free;
end;
von TImage wird garnicht benutzt, also TPicture
Delphi-Quellcode:
Picture := TPicture.Create(Self.Owner);
try
  Picture.Bitmap.Assign(FBitmap);
  Clipboard.Assign(Picture.Graphic);
finally
  Picture.Free;
end;
im Graphic ist das Bitmap drin, wodurch Graphic = Bitmap,
also Clipboard.Assign(Picture.Bitmap);
Picture.Bitmap erstellt ein TBitmap (wenn/da noch Keines drin ist), und es wird unverändert als TBitmap weiterverwendet,
womit auch das TPicture praktisch garnicht verwendet wird
Delphi-Quellcode:
Bitmap := TBitmap.Create(Self.Owner);
try
  Bitmap.Assign(FBitmap);
  Clipboard.Assign(Bitmap);
finally
  Bitmap.Free;
end;
und dann kopierst du den Inhalt des einen Bitmaps nur in ein Anderes, womit das auch wegfallen könnte, weil sich doch nichts verändert,
also Clipboard.Assign(FBitmap);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Okt 2022 um 16:02 Uhr)
  Mit Zitat antworten Zitat