* 사용환경 : 델파이5 / Windows 98
델파에서 투명창을 구현하려고 하니까
보통 form1.brush.style:=bsclear를 하더라구요
그래서 저도 했는데 바탕이 한번 변하고는 다른곳에
이동하면 갱신이 되질 않아서 문제가 많습니다.
그리고 누군가가 paint에 invalidate를 쓰라고
하는데 그거 문제가 상당히 많은 무식한 방법
( 리소스 측정기 : 자원사용량 100% )으로
다른 프로그램과의 심각한 문제가 있습니다.
paint함수에 form1.refresh나 form1.repaint도
마찬가지로 엄청나 짓을 하구요
다른 좋은 대책이 없을 까요 paint에 넣으면
너무 자원을 많이 잡아먹어서요
다른 좋은 방법 있으시면 답변을 부탁드립니다.
즐거운 시간 되시길
> * 사용환경 : 델파이5 / Windows 98
>
> 델파에서 투명창을 구현하려고 하니까
> 보통 form1.brush.style:=bsclear를 하더라구요
>
> 그래서 저도 했는데 바탕이 한번 변하고는 다른곳에
> 이동하면 갱신이 되질 않아서 문제가 많습니다.
>
> 그리고 누군가가 paint에 invalidate를 쓰라고
> 하는데 그거 문제가 상당히 많은 무식한 방법
> ( 리소스 측정기 : 자원사용량 100% )으로
> 다른 프로그램과의 심각한 문제가 있습니다.
>
> paint함수에 form1.refresh나 form1.repaint도
> 마찬가지로 엄청나 짓을 하구요
>
> 다른 좋은 대책이 없을 까요 paint에 넣으면
> 너무 자원을 많이 잡아먹어서요
>
> 다른 좋은 방법 있으시면 답변을 부탁드립니다.
> 즐거운 시간 되시길
>
안녕하세요~ 저도 그런 프로그래밍을 여러번 해봤는데요...
쉽진 않습니다.
만약 표시해야할게 많고 복잡하다면 먼저 폼크기만큼 배경을 캡쳐해서
변경될때마다 복구시켜줘야 합니다. 가령 투명 라벨인경우 바탕이 복구되지 않으면
글자가 바뀔때 겹쳐지게 되거든요... 이문제가 해결되면 반은 성공한셈입니다.
그 다음은 윈도우의 크기변경과 위치변경입니다.
해보셔서 아시겠지만 배경을 그대로 끌고갑니다. 즉 위치가 바뀔때마다 배경을
다시 캡쳐해야하는데...이것을 해결한 몇가지 소스를 분석해보니 모두
윈도우를 hide하고 캡쳐하고 show 하더군요...쩝....
즐플.....