Parsi Coders
شفاف کردن فرم - نسخه قابل چاپ

+- Parsi Coders (http://parsicoders.com)
+-- انجمن: Software Development Programming (http://parsicoders.com/forumdisplay.php?fid=37)
+--- انجمن: Pascal/Delphi (http://parsicoders.com/forumdisplay.php?fid=45)
+---- انجمن: Delphi (http://parsicoders.com/forumdisplay.php?fid=69)
+---- موضوع: شفاف کردن فرم (/showthread.php?tid=582)



شفاف کردن فرم - Amin_Mansouri - 08-01-2011

از این تابع برای شفاف کردن فرم برنامه خود استفاده نمایید
کد:
procedure TForm1.Button1Click(Sender: TObject);
var
  frmRegion, tempRegion: HRGN;
  i: Integer;
  Arect: TRect;
begin
  frmRegion := 0;
  for I:= 0 to ControlCount - 1 do begin
    aRect := Controls[i].BoundsRect;
    OffsetRect( aRect, clientorigin.x - left, clientorigin.y - top );
    tempRegion := CreateRectRgnIndirect( aRect );
    if frmRegion = 0 then
      frmRegion := tempRegion
    else begin
      CombineRgn( frmRegion, frmRegion, tempRegion, RGN_OR );
      DeleteObject( tempRegion );
    end;
  end;
  tempregion :=
    CreateRectRgn( 0, 0, Width,
                   GetSystemMetrics( SM_CYCAPTION )+
                   GetSystemMetrics( SM_CYSIZEFRAME )+
                   GetSystemMetrics( SM_CYMENU ) * Ord(Menu <> Nil));

  CombineRgn( frmRegion, frmRegion, tempRegion, RGN_OR );
  DeleteObject( tempRegion );
  SetWindowRgn( handle, frmRegion, true );
end