C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[20278] Re:Re:[질문]현재 윈도우의 bit를 내 프로그램 실행할때만 다른 bit로( 32bit (트루칼라)->24bit
blueSea [mjlee77] 872 읽음    2002-07-22 16:34
이렇게 하니 화얀화면은 나타나지 않는데
라인도 나타나지 않습니다.
뭐가 문제일까요?
그리고 image위에다 비트맵 없이 라인만 그리는 건데도
Image1->Picture->Bitmap->PixelFormat = pf16bit;
이게 적용이 되나요?


유영인.Chris 님이 쓰신 글 :
: 팔레트 정보나 초기 비트맵 비트가 맞지 않아서 그럴지도 모르겠네요.
:
: Image1->Picture->Bitmap->PixelFormat = pf16bit;
:
: 이런 식으로 비트를 설정해 보시는건 어떻까요?
:
:
:
: blueSea 님이 쓰신 글 :
: : 안녕하세요.
: : 항상 도움만 받는 초보입니다.
: : 내가 만든 프로그램은 윈도우 색이 24bit로 설정해 놓은 상태에서 만들어 졌는데..
: : 이것을 32bit로 설정되어 있는 윈도우에서 문제가 생깁니다.
: :
: : 문제가 되는 부분의 코드는 아래입니다.
: :
: : void __fastcall TConfigForm::DrawAlarmAgain(int index, unsigned char* MyArray, TColor Color1, TColor Color2, TColor Color3)
: : {
: : //TODO: Add your source code here
: :      TStringGrid *strGrid = FaAlarmStringGrid;
: :      float start = 0, end = 0, level_hi = 0, level_lo = 0;
: :      float DrawStart = 0, DrawEnd = 0;
: :      float minf = MainForm->LfLBVal->Caption.ToDouble();
: :
: :      TCanvas *Canvas = MainForm->AlarmImage->Canvas;
: :      Canvas->Brush->Color = clBackground;
: :      Canvas->Brush->Color = Color1;
: :      Canvas->Pen->Color = Color2;
: :
: :
: :      if( MainForm->SpurRBT->Checked)
: :      {
: :           if(MyArray[index] == 0x01)
: :           {
: :
: :                start = StrToFloat(strGrid->Cells[1][index+1]);
: :                end = StrToFloat(strGrid->Cells[2][index+1]);
: :                level_hi = StrToFloat(strGrid->Cells[3][index+1]);
: :                level_lo = StrToFloat(strGrid->Cells[4][index+1]);
: :
: :                DrawStart = start - minf;
: :                DrawEnd = end - minf;
: :                StartX[index] = DrawStart * IMG_WIDTH/(MainForm->SpanTrans);
: :                EndX[index] = DrawEnd * IMG_WIDTH/(MainForm->SpanTrans);
: :                LevelHigh[index] = MainForm->AlarmImage->Height
: :                                   * 0.01 * (MainForm->RefTrans - level_hi);
: :                LevelLow[index] = MainForm->AlarmImage->Height
: :                                  * 0.01 * (MainForm->RefTrans - level_lo);
: :
: :                Canvas->MoveTo(StartX[index], LevelHigh[index]);
: :                Canvas->LineTo(EndX[index], LevelHigh[index]);
: :
: : //               Canvas->MoveTo(40, 200);
: : //               Canvas->LineTo(50, 220);
: :
: :
: :                Canvas->Pen->Color = Color3;
: :
: :                Canvas->MoveTo(StartX[index], LevelLow[index]);
: :                Canvas->LineTo(EndX[index], LevelLow[index]);
: :
: :
: :           }
: :           else
: :           {
: :                  Canvas->Pen->Color = Color1;
: :                  Canvas->MoveTo(StartX[index], LevelHigh[index]);
: :                  Canvas->LineTo(EndX[index], LevelHigh[index]);
: :                  Canvas->MoveTo(StartX[index], LevelLow[index]);
: :                  Canvas->LineTo(EndX[index], LevelLow[index]);
: :           }
: :
: :           Canvas->Pen->Color = Color2;
: :      }
: :
: : }
: :
: : 위처럼 되어 있는 코드를 실행하면
: : 24bit일때는 제대로 image에 라인이 나타납니다.
: : 32bit일때는 처음엔 image에 라인이 나타나면서 전체 화면이 백색이 됩니다.그리고 그림을 지운 다음 다시 이벤트를 주게 되면 제대로 나옵니다.
: : 원인을 모르겠습니다.  빨리 해결해야 되는데... 도움 주시면 감사하겠습니다.

+ -

관련 글 리스트
20268 [질문]현재 윈도우의 bit를 내 프로그램 실행할때만 다른 bit로( 32bit (트루칼라)->24bit (트루 blueSea 874 2002/07/22
20269     Re:[질문]현재 윈도우의 bit를 내 프로그램 실행할때만 다른 bit로( 32bit (트루칼라)->24bit ( 유영인.Chris 768 2002/07/22
20278         Re:Re:[질문]현재 윈도우의 bit를 내 프로그램 실행할때만 다른 bit로( 32bit (트루칼라)->24bit blueSea 872 2002/07/22
20279             Re:Re:Re:[질문]현재 윈도우의 bit를 내 프로그램 실행할때만 다른 bit로( 32bit (트루칼라)->2 유영인.Chris 772 2002/07/22
20280                 Re:Re:Re:Re:[질문]현재 윈도우의 bit를 내 프로그램 실행할때만 다른 bit로( 32bit (트루칼라) blueSea 715 2002/07/22
20283                     Re:Re:Re:Re:Re:[질문]현재 윈도우의 bit를 내 프로그램 실행할때만 다른 bit로( 32bit (트루칼 유영인.Chris 778 2002/07/22
20288                         Re:Re:Re:Re:Re:Re:답변 감사합니다...^^ (귀찮게 해 드린건 아닌지...ㅜ.ㅜ)-내용없음 blueSea 720 2002/07/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.