|
흔한 상황은 아니지만...
어이 없게도 간혹 그래픽 카드의 드라이버에 버그가 있고 그로 인해 오동작하는 경우가 있습니다.
저도 두어 번 겪었구요.
아직 패치가 안되었을 수도 있겠지만... 그래픽 드라이버 업데이트가 있는지 확인해보시죠.
이즈 님이 쓰신 글 :
: 몇가지 테스트를 해보니.. 조금은 이해가 안되는 상황이네요..
:
: 현재 TImage 컨트롤의 Width는 50 이고 Height 는 4096 입니다..
:
: 이때 문제가 생기는데.. 고급형 비디오 카드를 쓴 개발자 노트북에서는 괜찮았는데
:
: 내장칩셋을 사용한 PC에서는 사양에따라 256위치 혹은 512위치 까지만 출력이 되는 기이한 현상이었습니다..
:
: 그래서 몇가지를 더 테스트 해본 결과 Width가 145를 넘어가야만 정상적으로 출력되네요-.-;;
:
: 일단 임시로 사이즈를 늘려놓고 포지션 잡아서 다시 그리게는 해놨는데..
:
: 어떻게 된 내용인지 혹이 아시는분 계신가요?
:
:
: 이즈 님이 쓰신 글 :
: : 안녕하세요..
: :
: : 요즘 뭔가를 하나 만들고 있는데요 생전 처음보는 문제가 발생해서 이렇게 문의를 드립니다.
: :
: : TImage의 Canvas에 직접 그린 내용이 같은 프로그램임에도 다른 컴터에서 다르게 나타나는 증상입니다..
: :
: : 첨부된 파일의 앞에부분이 이상없는 개발컴이구요.. 뒷부분이 다른컴 입니다..
: :
: : 사양을 놓고 보자면..
: :
: : 개발컴 : 코어2 듀오, 4G RAM, XP SP3
: : 코어2 듀오, 2G RAM, XP SP3
: :
: : 다른컴 : 코어2쿼드, 1G RAM, XP SP3
: :
: : 램때문인가 싶어서 살펴봐도 프로그램이 사용하는 메모리는 정말 얼마 안됩니다..
: : GDI객체 사용량이 많아서 그런가 싶어 리소스를 살펴봐도 60개도 안쓰고 있구요..
: :
: : 코드는 간단합니다.
: :
: : void __fastcall TFrameCompare::DrawGaugeY(TCanvas *C, int nClientX, int nClientY)
: : {
: : int nX, nY;
: : double dbRatioY = nClientY/m_nYCnt;
: : C->Lock();
: :
: : TColor oldColor = C->Pen->Color;
: : C->Pen->Color = TColor(CLR_RED);
: :
: : for(nY=0; nY < m_nYCnt; nY++)
: : {
: : C->MoveTo(nClientX, nY*dbRatioY);
: :
: : if(nY%GAUGE_Y_LONG_EVERY)
: : {
: : C->LineTo(nClientX-GAUGE_Y_SIZE_SHORT, nY*dbRatioY);
: : }
: : else
: : {
: : C->LineTo(nClientX-GAUGE_Y_SIZE_LONG, nY*dbRatioY);
: : C->TextOut(nClientX - GAUGE_Y_SIZE_LONG - C->TextWidth(AnsiString(nY)), nY*dbRatioY, AnsiString(nY));
: : }
: : }
: :
: : C->Pen->Color = oldColor;
: : C->Unlock();
: : }
: : 혹시 이런문제 겪어보신분 계신가요?
|