![](https://i.imgur.com/ewz7q.jpg)

I need to make the program which have one form that contains PNG image with transparent area. Form must be invisible, while image must stay visible and transparent area must stay transparent. The problem is image transparency. In this case, main form is transparent, invisible, while all components/controls stays visible. But, transparent area of PNG image doesn't keep transparency. How to keep transparency?

```
   procedure MakeTransparent;
   var
   AControl: TControl;
   A, Margin, X, Y, CtlX, CtlY: Integer;
   begin
     Margin    := (Width - ClientWidth) div 2;
     FullRgn   := CreateRectRgn(0, 0, Width, Height);
     X         := Margin;
     Y         := Height - ClientHeight - Margin;
   ClientRgn := CreateRectRgn(X, Y, X + ClientWidth, Y + ClientHeight);
   CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF);
   for A := 0 to ControlCount - 1 do
   begin
    AControl := Controls[A];
    if (AControl is TWinControl) or (AControl is TGraphicControl) then with        AControl do
   begin
    if Visible then
    begin
      CtlX   := X + Left;
      CtlY   := Y + Top;
      CtlRgn := CreateRectRgn(CtlX, CtlY, CtlX + Width, CtlY + Height);
      CombineRgn(FullRgn, FullRgn, CtlRgn, RGN_OR);
    end;
  end;
  end;
  SetWindowRgn(Handle, FullRgn, True);
  end;

  procedure UndoTransparency;
  begin
   FullRgn := CreateRectRgn(0, 0, Width, Height);
   CombineRgn(FullRgn, FullRgn, FullRgn, RGN_COPY);
   SetWindowRgn(Handle, FullRgn, True);
  end;

```