Mam następujący problem z uzyskaniem efektu przyciemnienia okna na czas pokazania komunikatu, jak niżej. Do dynamicznego TImage wczytuję za pośrednictwem TPngObject grafikę z przeźroczystością.
Jak widać wszystko jest niby dobrze, ale TImage ląduje pod spód komponentów.
Wszystkie kontrolki przechodzą na wierzch.
uses PngImage;
var
Png: TPngObject;
Img: TImage;
begin
Png := TPngObject.Create;
try
Png.LoadFromFile(ExtractFilePath(Application.ExeName) + 'background.png');
Img := TImage.Create(Self);
with Img do
begin
Parent := Self;
AutoSize := False;
Transparent := True;
Left := 0;
Top := 0;
Height := Form2.Height;
Width := Form2.Width;
Name := 'Img';
Stretch := True;
BringToFront;
Picture.Assign(Png);
end;
finally
Png.Free;
end;
ShowMessage('ok');
Img.Free;
end;
W jaki sposób uzyskać taki efekt, przy czym wszystkie komponenty mają być zasłonięte przez wczytaną grafikę.