Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
판넬을 투명하게 ...답변이 없군
판넬에서 파생된 콤포넌트를 만들려고 하는데
그 판넬이 투명했으면 합니다.
그 방법을 좀 알려주신다면 감사하..
bevel을 쓰자니
그 위에 어떤 컴포넌트를 올릴 수 가 없고,
Panel을 쓰닌 투명이 안되고 ..
이찌 하오리까 ?
[부탁]힌트라도 좀 줘여...
1
COMMENTS
김영대
•
1999.11.02 03:01
배재민 wrote:
> 판넬에서 파생된 콤포넌트를 만들려고 하는데
> 그 판넬이 투명했으면 합니다.
> 그 방법을 좀 알려주신다면 감사하..
> bevel을 쓰자니
> 그 위에 어떤 컴포넌트를 올릴 수 가 없고,
> Panel을 쓰닌 투명이 안되고 ..
> 이찌 하오리까 ?
> [부탁]힌트라도 좀 줘여...
전에 받아둔 소스인데 참고해 보세요
Type
TTransparentPanel = Class(TPanel)
Private
Procedure SetParent(AParent:TWinControl); Override;
Procedure WMEraseBkGnd(Var Message:TWMEraseBkGnd); Message WM_EraseBkGnd;
Protected
Procedure CreateParams(Var Params:TCreateParams); Override;
Procedure Paint; Override;
Public
Constructor Create(AOwner:TComponent); Override;
Procedure Invalidate; Override;
End;
Constructor TTransparentPanel.Create(AOwner:TComponent);
Begin
Inherited Create(AOwner);
ControlStyle:= ControlStyle - [csOpaque];
End;
Procedure TTransparentPanel.CreateParams(Var Params:TCreateParams);
Begin
Inherited CreateParams(Params);
Params.ExStyle:= Params.ExStyle or WS_EX_TRANSPARENT;
End;
Procedure TTransparentPanel.Paint;
Begin
Canvas.Brush.Style:= bsClear;
Canvas.Rectangle(0, 0, Width, Height);
Canvas.TextOut(Width div 2, Height div 2, 'Transparent');
End;
Procedure TTransparentPanel.WMEraseBkGnd(Var Message:TWMEraseBkGnd);
Begin
{Do Nothing}
Message.Result:= 1;
End;
Procedure TTransparentPanel.SetParent(AParent:TWinControl);
Begin
Inherited SetParent(AParent);
{
The trick needed to make it all work!
I don't know if changing the parent's style is a good idea, but it only
removes the WS_CLIPCHILDREN style which shouldn't cause
any problems.
}
If Parent <> Nil then
SetWindowLong(Parent.Handle, GWL_STYLE,
GetWindowLong(Parent.Handle, GWL_STYLE) And Not WS_ClipChildren);
End;
Procedure TTransparentPanel.Invalidate;
Var
Rect :TRect;
Begin
Rect:= BoundsRect;
If (Parent <> Nil) and Parent.HandleAllocated then
InvalidateRect(Parent.Handle, @Rect, True)
Else
Inherited Invalidate;
End;
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
여용구
1999.11.02 03:13
0
COMMENTS
/
0
LIKES
[부디]델파이 IDE에서 코드 편집시 문제..
여용구
•
1999.11.02 01:57
1
COMMENTS
/
0
LIKES
uses의 사용
TeamX
•
1999.11.02 04:00
안녕하세요. interface 의 uses 절은 말그대로(?) 외부에서 볼수가 있습니다. 그리고 implementation의...
김현수
•
1999.11.02 01:16
1
COMMENTS
/
0
LIKES
퀵레포트 인쇄시 문제
좋은날
•
1999.11.02 06:17
김현수 wrote: > 퀵 레포트에서 문제가 발생하여 질문합니다. > 퀵 레포트에서 미리보기는 잘되는데 인쇄...
배재민
•
•
1999.11.02 01:47
1
COMMENTS
/
1
LIKES
판넬을 투명하게 ...답변이 없군
판넬에서 파생된 콤포넌트를 만들려고 하는데 그 판넬이 투명했으면 합니다. 그 방법을 좀 알려주신다면 감사하.. bevel을 쓰자니 그 위에 어떤 컴포넌트를 올릴 수 가 없고, Panel을 쓰닌 투명이 안되고 .. 이찌 하오리까 ? [부탁]힌트라...
김영대
•
1999.11.02 03:01
배재민 wrote: > 판넬에서 파생된 콤포넌트를 만들려고 하는데 > 그 판넬이 투명했으면 합니다. > 그 방...
termy
•
1999.11.02 00:21
2
COMMENTS
/
0
LIKES
리스트뷰에서 포커서 이동
김영대
•
1999.11.02 03:05
termy wrote: > 리스트뷰에서 버튼 클릭시에 선택된 포커스를 다음 또는 이전으로 > 보낼 수 없나여?? ...
termy
•
1999.11.02 03:18
> for i := 0 to LV_UserList.Items.Count-1 do > begin > // 아이템의 선택과 이동은 다음 3가지 ...
한
•
1999.11.02 00:08
2
COMMENTS
/
0
LIKES
폼이 포커스를 잃으면 종료하게...
TeamX
•
1999.11.02 00:25
// Try this...... // 팔 빨리 나으세요....... type TForm1 = class(TForm) private proce...
한
•
1999.11.02 00:41
넵, 감사합니다.
박성훈
•
1999.11.01 23:56
1
COMMENTS
/
0
LIKES
랜상에서 컴포트를 공유할 수 있는지...
전철호
•
1999.11.02 06:28
박성훈 wrote: > 윈도환경의 pc를 몇대 연결한 다음 여러대의 pc가 특정 pc의 컴포트를 자기것처럼 쓸 수 ...
sun
•
1999.11.01 23:42
1
COMMENTS
/
0
LIKES
QRExpr로 합계를 낸 다음 거기에 콤마또는 소숫점을 ??
오승섭
•
1999.11.01 23:52
안녕하세요... TQRExpr의 Mask란 Propertie가 있습니다. 전 보통 여기에 #,### 라고 주고 프린트한답...
이윤학
•
1999.11.01 22:28
1
COMMENTS
/
0
LIKES
델파이에서 전화접속을 끊을 수 없나요?
이정욱
•
1999.11.02 08:48
쩝.. 너무 자세한 답변을 해드리지는 못하지만 RAS를 공부하시면 됩니다. 한델 자료실에도 RAS에 관련된...
이만준
•
1999.11.01 22:24
3
COMMENTS
/
0
LIKES
dll에서 광역변수를 공유하려면..?
오세웅
•
1999.11.01 22:31
아녕하세요 음.. 답변이 될지 잘 모르겠네요 Win32 API 쪽을 보면 Atom이란게 있거든요 이것이 그런 문...
이만준
•
1999.11.02 04:00
안녕하세요... 답변해줘서 고마워요... 한데 atom 은 atom 이나 스트링을 넘겨줘야하니까... 마...
오세웅
•
1999.11.02 10:06
아녕하세요^^; 별 도움이 안되었군요 고수님들이 도와 줄 거에요 걱정 마시길... 그리고, 도움이 될...
hopeship
•
1999.11.01 20:41
1
COMMENTS
/
0
LIKES
ShellExecute 함수를 쓰는중 Error가...
이정욱
•
1999.11.01 20:55
ShellAPI 를 사용유닛에 추가를 해주셔야 합니다. ShellAPI를 USes 절에 추가하세요. hopeship wrote...
델초보
•
1999.11.01 20:35
2
COMMENTS
/
0
LIKES
아웃룩 처럼 화면을 네개로 분할하고 싶은데요?
오세웅
•
1999.11.01 22:07
델초보 wrote: > Outlook Express처럼 화면을 네게로 분할 하고 싶은데 어떻게 해야 하나요? > 방법좀 알...
이주흥
•
1999.11.01 22:02
델초보 wrote: > Outlook Express처럼 화면을 네게로 분할 하고 싶은데 어떻게 해야 하나요? > 방법좀 알...
sun
1999.11.01 20:25
0
COMMENTS
/
0
LIKES
Quick Report 에서 출력시 인쇄방향을 바꾸려면/...?
황현
•
1999.11.01 19:37
2
COMMENTS
/
0
LIKES
MaskEdit 의 속성???
오세웅
•
1999.11.01 19:49
황현 wrote: > MaskEdit 속성중에 오브젝트 인스펙퍼의 EditMask 속성 의 세점 박스를 클리하면 > Input ...
황현
•
1999.11.01 21:53
오세웅님 감사합니다..... 복받으세요..... ^(00)^
이용호
1999.11.01 19:16
0
COMMENTS
/
0
LIKES
preview 폼 속성 변경할려면.....
고유진
1999.11.01 18:06
0
COMMENTS
/
0
LIKES
[퀵레포트]미리보기에서 자동 용지전환...
조강돈
•
1999.11.01 15:23
1
COMMENTS
/
0
LIKES
버전별 데이터베이스 호환에 대하여...
이정욱
•
1999.11.01 20:28
데이타는 버전에 상관없이 호환이 됩니다. 조강돈 wrote: > 현재 델파이 3에서 작업한 데이터를 델파...
왕초보
•
1999.11.01 08:35
1
COMMENTS
/
0
LIKES
컴포넌트를 폼의 크기에 따라 변화할수 있도록....
안치봉
•
1999.11.01 11:29
델파이4를 사용하신다면 앵커(Anchor?)속성을 사용해보시죠. 왕초보 wrote: > 예를 들어서 파일리스트 ...
김성호
•
1999.11.01 05:36
1
COMMENTS
/
0
LIKES
연산시 -부호 삭제하는 방법
안치봉
•
1999.11.01 06:56
Abs returns an absolute value. Unit System Category arithmetic routines function Abs...
장일형
1999.11.01 05:11
0
COMMENTS
/
0
LIKES
personal Oracle에 코딩으로 접속하는 방법은 없나요?
배재민
1999/11/02 01:47
Views
415
Likes
1
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 판넬에서 파생된 콤포넌트를 만들려고 하는데
> 그 판넬이 투명했으면 합니다.
> 그 방법을 좀 알려주신다면 감사하..
> bevel을 쓰자니
> 그 위에 어떤 컴포넌트를 올릴 수 가 없고,
> Panel을 쓰닌 투명이 안되고 ..
> 이찌 하오리까 ?
> [부탁]힌트라도 좀 줘여...
전에 받아둔 소스인데 참고해 보세요
Type
TTransparentPanel = Class(TPanel)
Private
Procedure SetParent(AParent:TWinControl); Override;
Procedure WMEraseBkGnd(Var Message:TWMEraseBkGnd); Message WM_EraseBkGnd;
Protected
Procedure CreateParams(Var Params:TCreateParams); Override;
Procedure Paint; Override;
Public
Constructor Create(AOwner:TComponent); Override;
Procedure Invalidate; Override;
End;
Constructor TTransparentPanel.Create(AOwner:TComponent);
Begin
Inherited Create(AOwner);
ControlStyle:= ControlStyle - [csOpaque];
End;
Procedure TTransparentPanel.CreateParams(Var Params:TCreateParams);
Begin
Inherited CreateParams(Params);
Params.ExStyle:= Params.ExStyle or WS_EX_TRANSPARENT;
End;
Procedure TTransparentPanel.Paint;
Begin
Canvas.Brush.Style:= bsClear;
Canvas.Rectangle(0, 0, Width, Height);
Canvas.TextOut(Width div 2, Height div 2, 'Transparent');
End;
Procedure TTransparentPanel.WMEraseBkGnd(Var Message:TWMEraseBkGnd);
Begin
{Do Nothing}
Message.Result:= 1;
End;
Procedure TTransparentPanel.SetParent(AParent:TWinControl);
Begin
Inherited SetParent(AParent);
{
The trick needed to make it all work!
I don't know if changing the parent's style is a good idea, but it only
removes the WS_CLIPCHILDREN style which shouldn't cause
any problems.
}
If Parent <> Nil then
SetWindowLong(Parent.Handle, GWL_STYLE,
GetWindowLong(Parent.Handle, GWL_STYLE) And Not WS_ClipChildren);
End;
Procedure TTransparentPanel.Invalidate;
Var
Rect :TRect;
Begin
Rect:= BoundsRect;
If (Parent <> Nil) and Parent.HandleAllocated then
InvalidateRect(Parent.Handle, @Rect, True)
Else
Inherited Invalidate;
End;