Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[8329] Re:패널의 바탕을 투명하게 주어서 패널 아래의 배경그림이 보이게
김종화 [heaven75] 3478 읽음    2002-09-27 11:43
조희문 님이 쓰신 글 :
: 패널의 바탕을 투명하게 주어서 패널 아래의 배경그림이 보이게
: 할수 있는 방법이 있는지요???
: 그럼 수고하세요! 
:

이렇게 하면 됩니당.. 머. 인자값을 폼으로 주면 패널뿐만 아니라 폼두 됩니당.^^

procedure TForm1.Button2Click(Sender: TObject);
begin
     ClearPanel(TPanel(panel1));
end;

procedure TForm1.ClearPanel(var panel : TPanel);
var  I : Integer;
     FullRgn, ClientRgn, ControlRgn : THandle;
     Margin, MarginX, MarginY, X, Y : Integer;
begin
     Margin := (panel.Width - panel.ClientWidth) div 2;
     FullRgn := CreateRectRgn(0, 0, panel.Width, panel.Height);
     MarginX := Margin;
     MarginY := panel.Height - panel.ClientHeight - Margin;
     ClientRgn := CreateRectRgn(MarginX, MarginY, MarginX + panel.ClientWidth,
                                                  MarginY + panel.ClientHeight);
     CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF);
     for I:=0 to panel.ControlCount-1 do begin
         X := MarginX + panel.Controls[I].Left;
         Y := MarginY + panel.Controls[I].Top;
         ControlRgn := CreateRectRgn(X, Y, X + panel.Controls[I].Width,
                                           Y + panel.Controls[I].Height);
         CombineRgn(FullRgn, FullRgn, ControlRgn, RGN_OR);
     end;
     SetWindowRgn(panel.Handle, FullRgn, True);
end;

+ -

관련 글 리스트
8323 패널의 바탕을 투명하게 주어서 패널 아래의 배경그림이 보이게 조희문 4004 2002/09/26
8329     Re:패널의 바탕을 투명하게 주어서 패널 아래의 배경그림이 보이게 김종화 3478 2002/09/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.