Tatsächlich. Jetzt klappts. Super. Ich weiß aber immer noch nicht warum?
Hier erstmal der neue Code
Delphi-Quellcode:
procedure TFrmMain.Verschleiern(Status: Boolean);
var
bm : TBitmap;
begin
if Status = TRUE then
begin
PanelVerschleiern := TPanel.Create(nil);
PanelVerschleiern.Parent := FrmMain;
PanelVerschleiern.Align := alclient;
PanelVerschleiern.Visible := FALSE;
PanelVerschleiern.BevelOuter := bvNone;
ImageVerschleiern := TImage.Create(PanelVerschleiern);
ImageVerschleiern.Parent := PanelVerschleiern;
ImageVerschleiern.Align := alclient;
bm := self.GetFormImage;
try
ImageVerschleiern.Picture.Bitmap := bm;
finally
bm.Free;
end;
AlphaBlendRect(ImageVerschleiern.Canvas,PanelVerschleiern.ClientRect,clblack,80);
PanelVerschleiern.Show;
end
else
begin
PanelVerschleiern.Hide;
FreeAndNil( ImageVerschleiern);
FreeAndNil( PanelVerschleiern);
end;
end;
Was ist denn nun der unterschied? Ob ich das Bitmap gleich zuordne, ...
ImageVerschleiern.Picture.Bitmap := self.GetFormImage;
...oder erst über eine neue Variable?
Delphi-Quellcode:
bm := self.GetFormImage;
try
ImageVerschleiern.Picture.Bitmap := bm;
finally
bm.Free;
end;