Zitat:
DeleteObject(das_HBitmap_Result);
// ....das
Handle freigeben, Richtig?
Nein denn dann siehst du nichts mehr das
Handle ist dann ungültig.
Du darfst es nicht löschen.
Nach der Übergabe bist du nicht mehr der Eigentümer des Handles es muss dann vom Object freigegeben werden welches es erhalten hat.
Delphi-Quellcode:
var
myBitmap: TBitmap;
myBitmap:= TBitmap.Create;
// <- das ist in FormCreate, nur damit man es hier sieht, ein Free ist im FormClose
function x : hbitmap;
begin
result := ein_HBitmap;
// DeleteObject(ein_HBitmap) // <<<<< nix löschen
end;
procedure y;
begin
myBitmap.Handle := x;
// <<<<<< canvas.handle war falsch das ist das DC..
// <<<< ab hier ist myBitmap gefüllt und du darfst das Handle nicht löschen
end;
gruss