TImage を含む透明なフォームを持つ小さな EXE を作成しました。フォームを透明にするために、次のコードを使用します。
Function TForm1.CombineRegions (FrmX , FrmY :Integer;CtrlComp : TControl;Var RegHandle : THandle) : Boolean;
Var
CtrlHandle : THandle;
CtrlLeft,
CtrlTop,
CtrlWidth,
CtrlHt : Integer;
begin
Result := False;
CtrlHandle := 0;
FrmX := 0;
FrmY := 0;
Try
CtrlLeft := CtrlComp.Left;
CtrlTop := CtrlComp.Top;
CtrlWidth := CtrlComp.Width;
CtrlHt := CtrlComp.Height;
Except
Exit;
End;
Try
FrmX:=0;
FrmY:=0;
FrmX := FrmX + CtrlLeft;
FrmY := FrmY + CtrlTop;
CtrlHandle := CreateRectRgn(FrmX, FrmY, FrmX + CtrlWidth, FrmY + CtrlHt) ;
CombineRgn(RegHandle, RegHandle, CtrlHandle, RGN_OR) ;
Except
End;
End;
それが行うことは、最初にすべてのフォームを非表示にすることです。次に、フォームに必要なコントロールに従って、上記の関数を呼び出し、その領域のみが描画されます。これで、私の TImage に背景色のある画像ができました。
ご覧のとおり、画像には背景があります。領域全体ではなく、内部のビットマップのみが描画されるように、TImage を描画したいと考えています。それはできますか?前もって感謝します。