Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
일반(VCL)-stringgrid 에서 특정셀의 글자에 색을 넣으려면..
안뇽하세요?
델파이를 시작하지 얼마 되지않은 왕초보입니다....
만약에 5 X 5 개의 셀을 가진 stringgrid에서 x=3,y=3에 있는 셀의
글자만 빨강색으로 바꾸려고 합니다. 어떻게 해야하죠?
이상하게 모든 글자가 바뀌어 버립니다....
그리고 글자가 한쪽으로 쏠리는데 가운데에 모이게 하는 방법도 가르쳐주시면
감사하겠습니다.
꾸벅...행복하세요..
1
COMMENTS
하늘맥
•
2000.10.28 18:58
왕초보맨 wrote:
> 안뇽하세요?
>
> 델파이를 시작하지 얼마 되지않은 왕초보입니다....
> 만약에 5 X 5 개의 셀을 가진 stringgrid에서 x=3,y=3에 있는 셀의
> 글자만 빨강색으로 바꾸려고 합니다. 어떻게 해야하죠?
> 이상하게 모든 글자가 바뀌어 버립니다....
>
> 그리고 글자가 한쪽으로 쏠리는데 가운데에 모이게 하는 방법도 가르쳐주시면
> 감사하겠습니다.
>
> 꾸벅...행복하세요..
안녕하세요...
스트링 그리드의 특정셀를 넣으려면 배열을 사용하여
스트링 그리의 ondrawcell 이벤트에 구현하면 됩니다..
스트링 그리드의 각각의 셀의 색깔의 ondrawcell이벤트에 부여해주어야지
셀별로 원하는 색깔을 변화 시킬수 있습니다..
참고로 저는 폰트 색깔을 변화시키지 못해서 셀에게 색깔을 주었죠
먼저 전역변수에 배열을 선언합니다..
저는 스트링그리가 10* 10 이라서 밑에와 같이 선언했습니다..
public
matrix : array[1..10,1..10] of string;
그다음 넣고자의 셀의 주소에 다음과 같이 코딩합니다.
matrix[3,3] := '3';
그리고 다음과 같이 코딩합니다.
procedure TGmgumsaEfrm.StrGridDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState); //넣고자하는 스트링그리드
var
s_grid: string;
i_pos,i_count,i,j: integer;
begin
For i := 1 to 10 do //색깔고정을 위해 배열을 이용하영 루틴를 돌림
For j := 1 to 10 do //배열 matrix 는 등록시에 초기화 하고 설정
begin
if (ACol >= 1) and (Arow >= 1) then //제목표시줄도 색깔이 변화하므로
begin
with (Sender as TstringGrid).canvas do
begin
s_grid := (Sender as TStringgrid).Cells[acol,arow];
If(ARow = i ) and (Acol= j) then
begin
case strtointdef(matrix[i,j],0) of
0 : Brush.Color := clBlack;
1 : Brush.Color := clFuchsia;
2 : Brush.Color := clRed; // 합격 : 검정 ::: 자치 : 연두
3 : Brush.Color := clGreen; // 불합격:적새 ::: 샘플 : 노란
9 : Brush.Color := clMaroon;
else
Brush.Color := clWhite;
end;
font.Color := clInfobk;
//font.Style := fsbold;
end;
//요기서 부터는 중간배열을 위한 루틴입니다....
FillRect(Rect);
i_pos := (rect.right-rect.left-TextWidth(s_grid)) div 2;//중앙배열
// lpos := rect.right - rect.left - textWidth(ls) - 4; 참고로 오른쪽
textrect(rect,rect.left+i_pos,rect.top+1,s_grid);
////////////////////////////////////////////////////
end;
end;
end;
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
궁금이
2000.10.27 20:22
0
COMMENTS
/
0
LIKES
질문 dbgrid에서 계산
sedari
2000.10.27 19:35
0
COMMENTS
/
0
LIKES
한방에 교체하는 방법 있나여?
왕초보
•
2000.10.27 19:34
1
COMMENTS
/
0
LIKES
Active X DLL 사용시 문제가.....
권영길
•
2000.10.27 20:13
해당 클래스 이름을 다른 이름으로 지정해서 써보세요. 왕초보 wrote: > active x dll을 메뉴에서 impo...
won
2000.10.27 19:24
0
COMMENTS
/
0
LIKES
콤보박스에서, 다운키 말고, 엔터키로 리스트보여주고 엔터키로 선택
장수정
•
2000.10.27 19:13
1
COMMENTS
/
0
LIKES
또 올려요..OracleDB에 그림이 깨지는데..
최성민
•
2006.08.10 23:09
odac를 업데이트 해야합니다..odac버그입이다...5.7version으로
부르르....
•
2000.10.27 18:57
1
COMMENTS
/
0
LIKES
image가 겹칠때 투명하게 할수 있는 방법 없나여?
정성훈
•
2000.10.27 22:40
부르르.... wrote: > image 콤포를 써서 하면 두 이미지가 겹쳐질땐 하난 없어 지자나요.. > 겹쳐지게 할...
델초보
2000.10.27 18:54
0
COMMENTS
/
0
LIKES
퀵리포트에서 이미지 출력...급~!!
김학철
2000.10.27 13:49
0
COMMENTS
/
0
LIKES
windows2000 server 에서 smtp사용
델초
•
2000.10.27 12:20
2
COMMENTS
/
0
LIKES
레코드 삭제하기
정성훈
•
2000.10.27 23:40
안녕하세요 밑에 이선경님의 글 보았습니다 전 자동증가 쓴적이 없어서 잘은 모르겠지만 제 나름대로의 ...
이선경
•
2000.10.27 22:44
그런 방법은 없는것으로 아는데요 꽁수를 쓰면 가능할수도 있을것 같은데요.. 자동증가를 정수형으로...
잠수함..
2000.10.27 09:47
0
COMMENTS
/
0
LIKES
디버깅이 안되요..도와주세요..~
이연희
2000.10.27 09:38
0
COMMENTS
/
0
LIKES
SetDIBits(); 함수 사용법좀
구찌
•
2000.10.27 09:02
2
COMMENTS
/
0
LIKES
윈도우용 mysql있나여?
parkisu
•
2000.10.28 10:27
구찌 wrote: > 안녕하세요. > 듣기로는 윈도우 뿐만 아니라. nt용도 있는 걸로 알고 있는데.. > 이건 어...
김하늘
•
2000.10.27 18:28
윈도우용 있지여 ShareWare이고요 nt용은 몰르겠고 어쨋든 접근 방식은 mysql odbc를 다운받아서 사용해도...
won
•
2000.10.27 08:41
1
COMMENTS
/
0
LIKES
폼에서 alt+x를 누르면 종료하게 하려면?
이성찬
•
2000.10.27 18:58
(Sender: TObject; var Key: Word; Shift: TShiftState) Shift 와 Key 로 처리 하실수도 있지만 작업하...
찾는이
2000.10.27 08:31
0
COMMENTS
/
0
LIKES
TmemoryStream에 대해서..
won
•
2000.10.27 07:30
1
COMMENTS
/
0
LIKES
라벨의 멀티라인 속성을 트루로 할려면?
이광형
•
2000.10.27 18:52
label 속성에서 autosize 는 false 로 하시구,... WordWrap 속성은 true 로 해 주세요 그리고 label 크기...
김도성
2000.10.27 07:03
0
COMMENTS
/
0
LIKES
nt서버에서 파일 정보 읽어오기 --;
초
2000.10.27 07:03
0
COMMENTS
/
0
LIKES
질문인데요...updateSQL의 이벤트가 발생하지 않아요....
왕초보맨
•
2000.10.27 06:59
1
COMMENTS
/
0
LIKES
일반(VCL)-stringgrid 에서 특정셀의 글자에 색을 넣으려면..
안뇽하세요? 델파이를 시작하지 얼마 되지않은 왕초보입니다.... 만약에 5 X 5 개의 셀을 가진 stringgrid에서 x=3,y=3에 있는 셀의 글자만 빨강색으로 바꾸려고 합니다. 어떻게 해야하죠? 이상하게 모든 글자가 바뀌어 버립니다.... 그리...
하늘맥
•
2000.10.28 18:58
왕초보맨 wrote: > 안뇽하세요? > > 델파이를 시작하지 얼마 되지않은 왕초보입니다.... > 만약에 5 X...
한병화
•
2000.10.27 05:42
1
COMMENTS
/
0
LIKES
에디트 박스에 리스트박스의 내용을 저장할 수 없나요?제발~~
사발우성
•
2000.10.27 05:54
^^ 울트라 초보맨 사발임당.. 에디트박스에 리스트박스의 아이템을 집어넣는 방법은 담과 같습니다. 리...
성호종
2000.10.27 05:22
0
COMMENTS
/
0
LIKES
[소원]informix7.2 cli 있으신분..제발...
왕초보맨
2000/10/27 06:59
Views
428
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 안뇽하세요?
>
> 델파이를 시작하지 얼마 되지않은 왕초보입니다....
> 만약에 5 X 5 개의 셀을 가진 stringgrid에서 x=3,y=3에 있는 셀의
> 글자만 빨강색으로 바꾸려고 합니다. 어떻게 해야하죠?
> 이상하게 모든 글자가 바뀌어 버립니다....
>
> 그리고 글자가 한쪽으로 쏠리는데 가운데에 모이게 하는 방법도 가르쳐주시면
> 감사하겠습니다.
>
> 꾸벅...행복하세요..
안녕하세요...
스트링 그리드의 특정셀를 넣으려면 배열을 사용하여
스트링 그리의 ondrawcell 이벤트에 구현하면 됩니다..
스트링 그리드의 각각의 셀의 색깔의 ondrawcell이벤트에 부여해주어야지
셀별로 원하는 색깔을 변화 시킬수 있습니다..
참고로 저는 폰트 색깔을 변화시키지 못해서 셀에게 색깔을 주었죠
먼저 전역변수에 배열을 선언합니다..
저는 스트링그리가 10* 10 이라서 밑에와 같이 선언했습니다..
public
matrix : array[1..10,1..10] of string;
그다음 넣고자의 셀의 주소에 다음과 같이 코딩합니다.
matrix[3,3] := '3';
그리고 다음과 같이 코딩합니다.
procedure TGmgumsaEfrm.StrGridDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState); //넣고자하는 스트링그리드
var
s_grid: string;
i_pos,i_count,i,j: integer;
begin
For i := 1 to 10 do //색깔고정을 위해 배열을 이용하영 루틴를 돌림
For j := 1 to 10 do //배열 matrix 는 등록시에 초기화 하고 설정
begin
if (ACol >= 1) and (Arow >= 1) then //제목표시줄도 색깔이 변화하므로
begin
with (Sender as TstringGrid).canvas do
begin
s_grid := (Sender as TStringgrid).Cells[acol,arow];
If(ARow = i ) and (Acol= j) then
begin
case strtointdef(matrix[i,j],0) of
0 : Brush.Color := clBlack;
1 : Brush.Color := clFuchsia;
2 : Brush.Color := clRed; // 합격 : 검정 ::: 자치 : 연두
3 : Brush.Color := clGreen; // 불합격:적새 ::: 샘플 : 노란
9 : Brush.Color := clMaroon;
else
Brush.Color := clWhite;
end;
font.Color := clInfobk;
//font.Style := fsbold;
end;
//요기서 부터는 중간배열을 위한 루틴입니다....
FillRect(Rect);
i_pos := (rect.right-rect.left-TextWidth(s_grid)) div 2;//중앙배열
// lpos := rect.right - rect.left - textWidth(ls) - 4; 참고로 오른쪽
textrect(rect,rect.left+i_pos,rect.top+1,s_grid);
////////////////////////////////////////////////////
end;
end;
end;