|
안녕하세요.heartsim(박경원)입니다.
현재 프로젝트로서 RS232프로그램을 짜고 있습니다.
헌데 맘에 걸리는 문제아닌 문제가 있어서 이렇게 글을 띄우네요..
예전부터 맘에 걸리는 버그 아닌 버그 였는데 이제서야 문제제기를 하는군요.^^;
문제는 폼바탕에 이미지를 깔았는데 첨에 프로그램 뜰때는 거의 문제가 없는데,
실행되고 나서 시간이 지난 후 폼을 움직인다던지 다른 폼에 가려져 있다가 나타날때는 이미지가
상당히 느리게 뜨더군요.^^;
그냥 지나치고 넘어갈가 했는데, 나중에 상용프로그램화 시킬 걸 생각하니 맘이 편치 않군요.^^;
폼구성을 더 자세히 말씀 드리면...
일단 폼에 Image컴포넌트를 깔았습니다.
그리고 그 이미지에 flatstyle의 groupbox컴포넌트를 올려놓고 그리고 그 groupbox위에 flatstyle
버튼을 올려놓았죠.
여기서 바탕은 image컴포넌트에 jpg그림을(그라데이션 효과를 준 하얀색)동적으로 올려놓았죠.
그리고 flatstyle의 groupbox의 Transparent를 True로 하고,
flatstyle의 flatbutton의 TransparentMode를 tmNotFocused로 해서 그룹박스나 버튼의 색깔도
Image컴포넌트에 올려놓은 jpg그림(그라데이션 효과를 준 하얀색) 색깔이 나오도록 했습니다.
이렇게 해서 폼을 구성을 했는데, 바로 Image하얀색의 그림이 로딩되는데 문제가 있군요.^^;
그래서 나름대로 해결책으로 FormCreate함수에 doublebuffered=true를 해보기도 하고
또 Image1->Refresh();나 Image1->Repaint(); 같은 처리를 해주기도 했죠.
그런데 역시나 같은 현상이...@@;;
한가지 더 생각한 것은 Graphics32컴포넌트입니다. 이컴포넌트를 써보지는 않았지만
로딩 속도가 빠르다고 해서 한번 시도를 해보았죠.
그래서 지금 있는 폼에 image1을 지우고 대신 Graphics32깔고 Graphics32컴포넌트를
Send to Back을 이용해서 맨 뒤로 가게 했습니다.
그런데 flatstyle 버튼과 그룹박스의 TransparentMode와 Transparent 속성이 안 먹더군요.@@;
그래서 폼을 하나 만들어서 테스트를 해보았는데 그때는 잘 되더군요.
지금 이 시점에서 다시 컴포넌트를 다 지우고 Graphics32를 첨부터 깔고 할려니 Graphics32의 로딩
속도가 확신이 안 들더군요.비슷하게 테스트를 해보았는데 역시 문제는 비슷하게 발생이 되는듯 합니다.
그래서 Graphic32컴포넌트도 역시 안되는 것으로 결론을 내렸답니다.
이런 경우 어떤 식으로 해결을 해야 하나요?
제가 폼구성을 넘 복잡하게 해서 이런 현상이 나오는건지...아님 해결책이 있는지..알고 싶군요.
|