Q&A

  • ActiveX Form에 잔상이 계속뜸니다.
안녕하세요. 델파이 초보 최기훈입니다.

제가 샘플로 ActiveX Form을 만들어 Test해보고 있는데...



브라우져를 ActiveX Form보다 작게 하여...

브라우져의 스크롤바를 이리저리 왔다갔다 하면...

ActiveX Form의 모양이 깨지는 현상이 발생됩니다.

이상한 잔상이 계속 남아있습니다.

브라우져를 minimize한다음 다시 복원 시켜야 원래의

ActiveX Form이 나옴니다.



이것 저것 해봐도 잘 안되네요.



이 잔상을 없애는 방법 좀 가르켜 주세요.

너무너무 답답하답니다.



고수님의 한수를 부탁드리며... 미리 감사드립니다.

3  COMMENTS
  • Profile
    이진우 2000.10.25 01:21
    최기훈 wrote:

    > 안녕하세요. 델파이 초보 최기훈입니다.

    > 제가 샘플로 ActiveX Form을 만들어 Test해보고 있는데...

    >

    > 브라우져를 ActiveX Form보다 작게 하여...

    > 브라우져의 스크롤바를 이리저리 왔다갔다 하면...

    > ActiveX Form의 모양이 깨지는 현상이 발생됩니다.

    > 이상한 잔상이 계속 남아있습니다.

    > 브라우져를 minimize한다음 다시 복원 시켜야 원래의

    > ActiveX Form이 나옴니다.

    >

    > 이것 저것 해봐도 잘 안되네요.

    >

    > 이 잔상을 없애는 방법 좀 가르켜 주세요.

    > 너무너무 답답하답니다.

    >

    > 고수님의 한수를 부탁드리며... 미리 감사드립니다.



    ActiveX Form에서 스크롤할때 깨지는 현상은 원래 버그라고 하던데요...

    해결 방법은 잘모르겠구요!

    브라우져 크기하고 ActiveX Form하고 크기를 맞추면 되지 않을까여~ ^^

    그럼 즐코 하세여~

  • Profile
    최기훈 2000.10.25 02:49
    정말인가요?

    그런데 제가 하려는 것은 ASP내에서 여러 내용이 추가되고 거기에 ActiveX form을

    올려야 되는데...

    폼을 맞추는 방법말고는 해결방법이 없나요?

    이게 안되면 정말 큰일인데...



    어째든 버그라는 사실을 알게 해줘서 이진우님께 감사드립니다.

    즐코하세요~~~



    이진우 wrote:

    > 최기훈 wrote:

    > > 안녕하세요. 델파이 초보 최기훈입니다.

    > > 제가 샘플로 ActiveX Form을 만들어 Test해보고 있는데...

    > >

    > > 브라우져를 ActiveX Form보다 작게 하여...

    > > 브라우져의 스크롤바를 이리저리 왔다갔다 하면...

    > > ActiveX Form의 모양이 깨지는 현상이 발생됩니다.

    > > 이상한 잔상이 계속 남아있습니다.

    > > 브라우져를 minimize한다음 다시 복원 시켜야 원래의

    > > ActiveX Form이 나옴니다.

    > >

    > > 이것 저것 해봐도 잘 안되네요.

    > >

    > > 이 잔상을 없애는 방법 좀 가르켜 주세요.

    > > 너무너무 답답하답니다.

    > >

    > > 고수님의 한수를 부탁드리며... 미리 감사드립니다.

    >

    > ActiveX Form에서 스크롤할때 깨지는 현상은 원래 버그라고 하던데요...

    > 해결 방법은 잘모르겠구요!

    > 브라우져 크기하고 ActiveX Form하고 크기를 맞추면 되지 않을까여~ ^^

    > 그럼 즐코 하세여~

  • Profile
    최석기 2000.10.25 20:27
    예전에 제가 여기서 답변한적 있는데..



    델파이 4에서는 않그랬는데 델파이 5에서는 그러더군요..



    델파이 버그예요..



    저두 예전에 그 현상 때분에 고생했는데 여기 저기 물어봐도 아시는 분이 않 계시더군요.



    그래서 외국에 뉴스 그룹 뒤지다 알아냈어요..



    델파이 Lib 소스를 수정해야 되요.



    axctrls.pas에



    function TActiveXControl.SetObjectRects(const rcPosRect: TRect;

    const rcClipRect: TRect): HResult;

    begin

    try

    FWinControl.BoundsRect := rcPosRect;

    Result := S_OK;

    except

    Result := HandleException;

    end;

    end;



    부분을 다음과 같이 수정하면 됨.



    function TActiveXControl.SetObjectRects(const rcPosRect: TRect;

    const rcClipRect: TRect): HResult;

    var

    WinRect: TRect;

    begin

    try

    IntersectRect(WinRect, rcPosRect, rcClipRect);

    // BEGIN FIX

    WinRect := Bounds(rcPosRect.left, rcPosRect.Top,

    WinRect.Right - WinRect.Left + rcClipRect.Left - rcPosRect.Left,

    WinRect.Bottom - WinRect.Top + rcClipRect.Top - rcPosRect.Top);

    // END FIX

    FWinControl.BoundsRect := WinRect;

    Result := S_OK;

    except

    Result := HandleException;

    end;

    end;



    아니면 ActiveX 메인 폼 위에 Panel을 하나 전체로 놓으시고 그 Panel을 Parent로 해서

    다른 일반 폼을 띄워서 그 일반 폼이 메인 폼 인것 같이 속이시면 되는데...











    최기훈 wrote:

    > 정말인가요?

    > 그런데 제가 하려는 것은 ASP내에서 여러 내용이 추가되고 거기에 ActiveX form을

    > 올려야 되는데...

    > 폼을 맞추는 방법말고는 해결방법이 없나요?

    > 이게 안되면 정말 큰일인데...

    >

    > 어째든 버그라는 사실을 알게 해줘서 이진우님께 감사드립니다.

    > 즐코하세요~~~

    >

    > 이진우 wrote:

    > > 최기훈 wrote:

    > > > 안녕하세요. 델파이 초보 최기훈입니다.

    > > > 제가 샘플로 ActiveX Form을 만들어 Test해보고 있는데...

    > > >

    > > > 브라우져를 ActiveX Form보다 작게 하여...

    > > > 브라우져의 스크롤바를 이리저리 왔다갔다 하면...

    > > > ActiveX Form의 모양이 깨지는 현상이 발생됩니다.

    > > > 이상한 잔상이 계속 남아있습니다.

    > > > 브라우져를 minimize한다음 다시 복원 시켜야 원래의

    > > > ActiveX Form이 나옴니다.

    > > >

    > > > 이것 저것 해봐도 잘 안되네요.

    > > >

    > > > 이 잔상을 없애는 방법 좀 가르켜 주세요.

    > > > 너무너무 답답하답니다.

    > > >

    > > > 고수님의 한수를 부탁드리며... 미리 감사드립니다.

    > >

    > > ActiveX Form에서 스크롤할때 깨지는 현상은 원래 버그라고 하던데요...

    > > 해결 방법은 잘모르겠구요!

    > > 브라우져 크기하고 ActiveX Form하고 크기를 맞추면 되지 않을까여~ ^^

    > > 그럼 즐코 하세여~