|
답변 정말 감사드립니다. ^^
근데 또 궁금한게 있어서요.. (__)
글자색은 이렇게 하니까 잘 바뀌는데요.
10*10의 grid에서 StringGrid1->Canvas->Brush->Color을 이용하면 지정된 셀의 색깔도 바꿀수가 있더군요. 그런데요.. 이렇게 지정해서 셀의 색깔을 바꾸고 그위에 다른색깔을 글자를 덮어 씌울수는 없나요?? 두개를 같이 쓰고 TextOut을 사용하니까 전체 셀의 글자가 동시에 brush->color로 바뀌더군요.. 마치 바탕화면이 있는것 처럼요.. 아신다면 답변 부탁드릴께요.^^;;
유영인.Chris 님이 쓰신 글 :
: Canvas 접근을 하실 때, DrawCell 이벤트에서 하시지 않으시면, 다시 덮어져 지워져 버립니다. 아래와 같이 DrawCell 이벤트로 접근을 하시면 손쉽게 접근을 하실 수 있고, Index #0 도 접근하실 수 있습니다.
:
: 아래 예제는 버튼을 클릭하면 0 ~ 2 중에 아무 글자나 넣고, 그 글자에 따라서 색을 다르게 찍는 예제입니다.
:
:
: //---------------------------------------------------------------------------
:
: #include <vcl.h>
: #pragma hdrstop
:
: #include "Unit1.h"
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma resource "*.dfm"
: TForm1 *Form1;
: //---------------------------------------------------------------------------
: __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
:
: int itX, itY;
:
:
: for(itX = 0; itX < StringGrid1->ColCount; itX ++)
: for(itY = 0; itY < StringGrid1->RowCount; itY ++)
: StringGrid1->Cells[itX][itY] = random(3);
:
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State)
: {
:
: String stData = StringGrid1->Cells[ACol][ARow].Trim();
:
:
: if(stData == "0") StringGrid1->Canvas->Font->Color = clMaroon;
: if(stData == "1") StringGrid1->Canvas->Font->Color = clGreen;
: if(stData == "2") StringGrid1->Canvas->Font->Color = clBlue;
:
: StringGrid1->Canvas->TextOut(Rect.Left + 2, Rect.Top + 2, stData);
:
: }
: //---------------------------------------------------------------------------
:
:
: 이용주 님이 쓰신 글 :
: : Cell별로 색깔을 넣는것은 canvas->color를 이용해서 구현했는데요.
: : 색깔을 지정한 셀에 글자를 넣을수가 없더군요. 색이 없어져 버립니다.
: : 셀의 색깔이 그 셀을 클릭하거나 거기에 글을 넣어도 그래도 남아있게 하는 방법은 없나요?? 있다면 꼭좀 답변좀 부탁드릴께요..
: : 그리고 한가지만더요 ^^;;
: : 셀에서 0,0 에 해당하는 곳에는 색깔이 지정이 안되더군요.
: : 예를 들면 1,1의 위치에는 어떤 색깔이 들어가는데, 0,0, 0,1 1,0 이런 자표 값에는 색깔이 들어가지가 않는건데 이것도 방법이 있는건가요?? 있다면 꼭좀 답해주세요~~ 부탁드립니다. 그럼수고하세요..
|