You need a window control (that is, a control with a window handle or a βcorrectβ control) to display your message, because a non-window control cannot be visible above the window control. The easiest solution is to put the TImage in the TPanel and set Image1.Align := alClient and Panel1.BorderStyle := bsNone .
If you want to draw a translucent bitmap on top of your regular controls, you can do as I always do:
procedure TForm1.Button1Click(Sender: TObject); var bm: TBitmap; png: TPngImage; begin // The form contains a hidden TPanel (somewhere on the form) // with a TImage (alClient). // png is a PNG image with an alpha channel png := TPngImage.Create; try png.LoadFromFile('C:\Users\Andreas Rejbrand\Pictures\alpha.png'); // Create bitmap of form and blend PNG on it bm := GetFormImage; try bm.Canvas.Draw(0, 0, png); Image1.Picture.Bitmap := bm; finally bm.Free; end; Panel1.Align := alClient; Panel1.BringToFront; Panel1.Show; finally png.Free; end; end;

source share