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
[18632] Re:불사새님,임페리얼님,경호님, 타 고수님들 좀 도와 주십시요?
유영인 [Chris] [cuperido] 870 읽음    2002-05-17 18:21
:      Image1->Canvas->Pen->Color = clBlack;

위의 코드 아래에 이 줄을 각각 붙여주세요. (2군데겠죠?)

Image1->Canvas->Pen->Mode  = pmCopy;
Image1->Canvas->Pen->Style = psSolid;

그리고, 생각나는게, event 처리가 반복이 된다면, 각각의 라인은 Width가 틀리기 때문에 색깔이 섞여서 보이는 현상이 발생될 수 있습니다. (만약 처리가 빠르다면요..)

만약 위 코드를 집어넣어도 안되신다면, 다른 부분에서의 그리기나 기타 다른 부분에서의 충돌을 살펴보십시오.

아래 코드는 버튼을 누르면 흰줄을 노란줄로 바꾸는 코드로 기원님이 쓰신 코드와 같은 코드입니다. 아래 코드를 새 Application을 만드신뒤 테스트 하시고, 어느 부분에서 틀어졌는지 한번 짚어보시는것도 좋으실것 같네요.


//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#define  X                   10
#define  Y                   10

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormActivate(TObject *Sender)
{

Image1->Canvas->Pen->Mode  = pmCopy;
Image1->Canvas->Pen->Style = psSolid;

Image1->Canvas->Pen->Color = clWhite;
Image1->Canvas->Pen->Width = 1;
Image1->Canvas->MoveTo(X, Y);
Image1->Canvas->LineTo(X + 100, Y + 100);

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{

Image1->Canvas->Pen->Mode  = pmCopy;
Image1->Canvas->Pen->Style = psSolid;

Image1->Canvas->Pen->Color = clYellow;
Image1->Canvas->Pen->Width = 2;
Image1->Canvas->MoveTo(X, Y);
Image1->Canvas->LineTo(X + 100, Y + 100);

}
//---------------------------------------------------------------------------



정기원 님이 쓰신 글 :
: 이곳에 들러시는 모든분들 안녕하십니까?
: 항상 많은 도움을 받아 갑니다. 늘 감사 드리구요.
: 2일전에 Image1->Canvas->Pen->?에서 선의 색깔을 변경하는 방법에 대해
: 질의를 드렸고 몇분이 답을 주셨습니다만 여전히 선의 색깔이 변하지 않아
: 다시 문의 드립니다. 저는 Image Component를 가지고 작업하는것이 처음이라
: 많이 막힙니다. 부디 도움 주시기를 부탁드립니다.
:
: 저번에 불사새님의 도움으로 무사히 TImage에서 도형과 선을 그렸습니다.
: 그런데 또 막혔습니다. 막힌곳은 이벤트에 따라 기존에 그려진 선의 색깔을
: 변경하고 싶어서 선의 색상을 달리 했는데 변경된 선의 색상으로 나타나지 않고
: 기존 색과 겹쳐진 색으로 나옵니다. 이를 해결할 방법은 없나요?
: 없다면 기존 선을 지우고 다시 그리면 될것 같은데 지울 수는 없나요?
:
: 일단 Form에 image component를 두고 이의 Align 특성을 Client로 했습니다.
: 그리고 bmp로 된 그림을 로드하였고 로드된 이미지 그림 위에 다시 몇개의
: Image component를 올려 놓고 이들 이미지를 서로 연결하는 선을 그렸습니다.
: 각 연결된 선의 색깔을 어떤 이벤트에 따라 변경하고자 합니다.
: 저의 코드 일부가 다음과 같이 했습니다.
: ----------------------------------------
:      Image1->Canvas->Pen->Color = clBlack;
:      Image1->Canvas->Pen->Width = 1;
:      Image1->Canvas->MoveTo(X, Y);
:      Image1->Canvas->LineTo(X+100, Y+100);
:
:      if(event) {
:                Image1->Canvas->Pen->Color = clRed;
:                Image1->Canvas->Pen->Width = 2;
:                Image1->Canvas->MoveTo(X, Y);
:                Image1->Canvas->LineTo(X+100, Y+100);
:      }
: -----------------------------------------------
: 위와 같이 했는데 선의 색깔이 붉은색으로 안 나옵니다.
: 어떻게 하면 되는지요.
: 많은 조언 부탁 드립니다.
: 그럼 모든분들 오늘도 즐거운 하루가 되시길....
:

+ -

관련 글 리스트
18631 불사새님,임페리얼님,경호님, 타 고수님들 좀 도와 주십시요? 정기원 845 2002/05/17
18632     Re:불사새님,임페리얼님,경호님, 타 고수님들 좀 도와 주십시요? 유영인 [Chris] 870 2002/05/17
18639         감사합니다. 그러나 바탕에 로드된 이미지 그림때문에 안되는것 같습니다. 정기원 865 2002/05/17
18643             Re:감사합니다. 그러나 바탕에 로드된 이미지 그림때문에 안되는것 같습니다. 유영인 [Chris] 870 2002/05/18
18669                 Re:Re:감사합니다. 제가 테스트하고 있는 부분 소스 올립니다. 정기원 789 2002/05/20
18670                     Re:Re:Re:감사합니다. 제가 테스트하고 있는 부분 소스 올립니다. 유영인 [Chris] 901 2002/05/20
18679                         정망 감사 합니다 유영인님. 해결 되었습니다. 낮은 비트 문제였군요. 너무너무 감사합니다(내용 무) 정기원 1060 2002/05/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.