안녕하십니까?
다음과 같이 작업을 했을때 깜박임이 나타납니다.
살펴보시소 고수님들의 조언을 부탁드립니다.
1. MDIForm에 2개의 Panel과 Button을 놓고 Panel1.Align := alTop,
Panel2.Align := alButtom을 디자인작업에서 설정합니다.
Panel1에 Button을 올려놓고 OnClick이벤트를 Panel2.visible := not Panel2.visible;
로 합니다.
2. MDIChildForm에는 여러개의 Panel를 놓고 Panel위에 Image, Button등을 올려
놓습니다.
3. MDIForm에서 Button을 클릭하면 MDIChildForm의 판넬들이 깜박입니다.
물론 WM_ERASEBACKGND를 가로채는 방법으로 깜박임을 줄이는 것을 시도해보았지만
마찬가지입니다. 어떻게 해야할지....?????
protected
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
// ..
end;
// ..
procedure TForm2.WMEraseBkgnd(var Message: TWMEraseBkgnd);
begin
Message.Result := 0
end;
감사합니다.
제가 보기에는 판넬의 WM_ERASEBKGND 메세지를 가로채야 하겠군요...
그리고 Message.Result := 0 가 아니라 1 을 넘겨주어야 합니다.
0 을 넘기면 이건 내가 처리못했다는 의미이고 0 이 아닌 다른 숫자면
내가 메세지를 처리했으니 넌 쉬어라(?)의 의미입니다.
판넬의 메세지를 가로채려면 팁란에서 후킹으로 검색을 해보세요.
류한규 wrote:
> 안녕하십니까?
>
> 다음과 같이 작업을 했을때 깜박임이 나타납니다.
> 살펴보시소 고수님들의 조언을 부탁드립니다.
>
> 1. MDIForm에 2개의 Panel과 Button을 놓고 Panel1.Align := alTop,
> Panel2.Align := alButtom을 디자인작업에서 설정합니다.
> Panel1에 Button을 올려놓고 OnClick이벤트를 Panel2.visible := not Panel2.visible;
> 로 합니다.
> 2. MDIChildForm에는 여러개의 Panel를 놓고 Panel위에 Image, Button등을 올려
> 놓습니다.
> 3. MDIForm에서 Button을 클릭하면 MDIChildForm의 판넬들이 깜박입니다.
> 물론 WM_ERASEBACKGND를 가로채는 방법으로 깜박임을 줄이는 것을 시도해보았지만
> 마찬가지입니다. 어떻게 해야할지....?????
>
> protected
> procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
> // ..
> end;
>
> // ..
>
> procedure TForm2.WMEraseBkgnd(var Message: TWMEraseBkgnd);
> begin
> Message.Result := 0
> end;
>
> 감사합니다.
>
>
>