|
감사합니다. 유영인님
폼위에 바로 이미지 콤포넌트를 올려서 아래 코드와 저의 코드를
테스트하니 잘 됩니다. 그러나
폼위에 TImage coponent올려서 속성을 Client로 하고
Picture로 bmp화일을 로드하여 둔 상태에서 다시 로드된 그림 위에
TImage를 추가하여 아래처럼 코딩하니까 선의 색이 기존에 로딩된
그림의 색과 섞여 잘 나오지 않습니다. 저는 폼 바탕에 무조건 이미지를
로딩하고 그 위에서 작업을 해야 하는데 어떻게 해야 할까요?
정말 갑갑합니다.
한번더 감사 드립니다. 수고하세요
유영인 [Chris] 님이 쓰신 글 :
: : 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);
: : }
: : -----------------------------------------------
: : 위와 같이 했는데 선의 색깔이 붉은색으로 안 나옵니다.
: : 어떻게 하면 되는지요.
: : 많은 조언 부탁 드립니다.
: : 그럼 모든분들 오늘도 즐거운 하루가 되시길....
: :
|