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
[20283] Re:Re:Re:Re:Re:[질문]현재 윈도우의 bit를 내 프로그램 실행할때만 다른 bit로( 32bit (트루칼
유영인.Chris [cuperido] 777 읽음    2002-07-22 17:25
MainForm->AlarmImage->Picture->Bitmap->PixelFormat = pf16bit;
MainForm->AlarmImage->Transparent                  = true;

이렇게 추가시키고 간단한 테스트 작업을 했었는데.. 32bit 로 디스플레이 모드가 변경되어도 흰 바탕이 생기지 않네요.

선이 화면 바깥쪽으로 나가는 건 잘 모르겠네요. 이미지 객체에서 선을 그리면, 아무리 값을 벗어나도 이미지 객체 바깥쪽으로 나가지는 않거든요. 이미지 객체가 그리시려는 영역보다 큰 것이 아닌가요..?

아래 코드를 직접 제가 실행을 시킬 수 있는 입장이 아니라서, 어디가 문제인 것이라고 찝어 드리기가 곤란하네요. 죄송합니다..


blueSea 님이 쓰신 글 :
: 유영인.Chris 님이 쓰신 글 :
: : DrawAlarmAgain 을 호출 하실 때, 라인 색은 어떻게 값을 넘겨 주셨나요?
: :
: : 문제가 계속 된다면, 간단한 테스트 프로그램을 만들어서 테스트를 해 보시는 것이 좋을 것 같습니다.
: :
: : 그리고, 투명 바탕에 선등만 그릴 때는, 이미지의 Transparent 프로퍼티를 True 로 해주시는 것이 좋습니다.
: :
: :
: 답변 감사합니다. 계속 질문만 드리네요...
:
: 함수를 호출할때는 아래와 같은 식으로 호출을 합니다.
: DrawAlarmAgain( FaCheckListBox->ItemIndex,
:                FaSelect, clBlack, clYellow, clYellow);
: 그리고 그 함수에서 모든 부분을 제외하고
:
: 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();
:
: //     MainForm->AlarmImage->Picture->Bitmap->PixelFormat = pf16bit;
:      MainForm->AlarmImage->Transparent = true;
:      TCanvas *Canvas = MainForm->AlarmImage->Canvas;
:      Canvas->Brush->Color = clBlack;
:      Canvas->Brush->Color = Color1;
:      Canvas->Pen->Color = Color2;
:
:     Canvas->MoveTo(40, 200);
:     Canvas->LineTo(50, 200);
:
: #if 0
:      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;
:      }
: #endif
:
: }
:
: 이렇게만 사용하면 화면에 이상없이 그려집니다.
: 화면에 라인을 그릴때 화면 밖에다 라인을 긋는 경우가 생기는데 이것때문에 문제가
: 될까요?  그래도 24bit로 놓고 하면 문제 없이 되는데......
:

+ -

관련 글 리스트
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 771 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 777 2002/07/22
20288                         Re:Re:Re:Re:Re:Re:답변 감사합니다...^^ (귀찮게 해 드린건 아닌지...ㅜ.ㅜ)-내용없음 blueSea 720 2002/07/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.