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
[18833] Re:StringGrid에서 Cell별로 색깔을 지정하는것에 관한 질문..
유영인.Chris [cuperido] 1353 읽음    2002-05-24 12:14
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 이런 자표 값에는 색깔이 들어가지가 않는건데 이것도 방법이 있는건가요?? 있다면 꼭좀 답해주세요~~ 부탁드립니다. 그럼수고하세요..

+ -

관련 글 리스트
18824 StringGrid에서 Cell별로 색깔을 지정하는것에 관한 질문.. 이용주 923 2002/05/24
18833     Re:StringGrid에서 Cell별로 색깔을 지정하는것에 관한 질문.. 유영인.Chris 1353 2002/05/24
18845         Re:Re:StringGrid에서 Cell별로 색깔을 지정하는것에 관한 질문.. 이용주 1497 2002/05/24
18847             Re:Re:Re:StringGrid에서 Cell별로 색깔을 지정하는것에 관한 질문.. 유영인.Chris 1726 2002/05/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.