2012-04-04 2 views
1

VCL 스타일에 매우 이상한 문제가 있습니다. 경우에 따라 사전 정의 된 스타일로 프로그램을 시작하거나 나중에 프로그램 창을 설정하면 프로그램 창 중 하나 또는 일부가 사라지기도합니다.Delphi XE2 VCL 스타일, 이상한 결함, 윈도우 보이지 않음

이것은 매우 임의적으로 발생합니다. 어쩌면 특정 윈도우가 아닌 10-20 회마다 한 번 발생합니다. 저는 런타임에 2 개의 양식을 열어 놓았습니다. 때로는 하나, 때로는 다른 양식이 있습니다.

이 경우 윈도우가 보이지 않거나, Visible 속성이 true이고, 윈도우 경계가 정확한 반면, 일부 속성을 검사합니다. Aero DWM 라이브 축소판을 통해 창을 표시하려고하면 .. 비어 있습니다. 그러나 창 DC를 캡처하는 경우, 마치 정상적으로 표시되는 것처럼 비트 맵을 얻습니다 (그리고 스타일이 적용되었습니다).

아무런 오류나 경고도 예외도 표시되지 않습니다. 아무 것도 보이지 않는 것 같습니다. 단지 창문이 없습니다. 미리보기를 보려고 마우스를 작업 표시 줄 단추 위로 가져 가면 상자가 표시되지만 비어 있습니다.

어떤 아이디어를 확인해야할까요?

편집 : 호출 RecreateWnd는 임시 해결 방법으로 문제를 해결하지만 다시 실패 할 수 있습니다.

+0

추측, 그것은 필요 0으로 설정 된 것처럼

, 당신은 창 경계와 그 뒤에 내용을 얻을 것이다 RecourseWnd. 작업 표시 줄에 표시된 미리보기를 클릭하면 어떻게됩니까? –

+0

아무 것도. 프로그램이 활성화되지만 아무 것도 표시되지 않습니다. 트레이 아이콘 메뉴를 통해 다른 스타일로 전환하면 다시 표시됩니다. 여기에 각각의 양식이 작업 표시 줄 미리보기를 통해 표시되지 않는 2 가지 경우가 있습니다. http://i.imgur.com/WT7KK.png http://i.imgur.com/gjClr.png 또한 DC에서 bitblt을 사용하면 스타일이 제대로 적용된 창을 캡처합니다. – hikari

+0

RecreateWnd를 호출하면 문제가 해결되며, 시작시와 일시적 해결 방법으로 스타일을 변경 한 후에 호출합니다. – hikari

답변

2

"Alphablend"라는 문제의 원인을 발견했습니다. 255로 설정해도이 문제가 발생하면 문제가 발생합니다.

단계 재현 :

  • 를 열고 새로운 VCL 양식 스타일의 테마를 설정
  • 프로젝트 옵션, 외관을 전망이다. 나는 글리치까지 그것은 10-20 실행이 걸릴 수 있습니다 진정한
  • 실행

에 테스트

  • 설정 Alphablend에 대한 코발트 XE를 사용했다.

    내가 실제로 눈치 채면 창은 실제로 거기에 있습니다. 마우스를 가져 가면 뭔가가 있음을 알 수 있습니다. 위치를 추측 할 경우 컨트롤을 클릭 할 수도 있습니다. 창이 보이지 않는 동안 창을 끌면 그 창이 나타납니다. 최소화/복원하면 표시됩니다. 창이 활성화되어 등 그림판에 붙여 동안 Alt + PrtScr를 할 경우 alphablendvalue이