Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
string grid 에서 소계 합계 row를 다른 색을 할려면
질문좀 하겠습니다..
string grid 에서 소계, 합계 row를 다른 색을 할려구 하는데..
잘 안됩니다..
전 잘 모르니까 좀 자세하게 설명좀 해주세요..
예제를 주시면 더욱 고맙겠구요..
그럼 수고하세요...
1
COMMENTS
박성훈
•
2000.02.18 01:14
oracle8i wrote:
> 질문좀 하겠습니다..
> string grid 에서 소계, 합계 row를 다른 색을 할려구 하는데..
> 잘 안됩니다..
> 전 잘 모르니까 좀 자세하게 설명좀 해주세요..
> 예제를 주시면 더욱 고맙겠구요..
> 그럼 수고하세요...
원하시는 기능은 TStringGrid의 OnDrawCell 이벤트에서 해결할 수 있습니다.
소계나 합계가 들어가는 Row가 유동적이라면 칼럼을 한개 더 두시고 소계나 합계를 구분
할 수 있는 구분문자를 두시면 될 것 같군요. 그런 후 아래와 같이 해보시면
될 것 같은데요. 그리고 원하시는 기능을 구현하는 방법이 팁란이나 Q&A에 많이 있으니
검색해 보시구요. 조금이라도 도움이 되었으면 좋겠군요.
procedure TfrmOrder.StringGrid1DrawCell(Sender: TObject; Col, Row: Integer;
Rect: TRect; State: TGridDrawState);
var
tmp:String;
L:Integer;
begin
with TStringGrid(Sender) do begin
tmp:= TStringGrid(Sender).Cells[Col,Row];
if Row=0 then begin // 첫번째 Row(보통 타이틀이 들어가는 곳)를 Maroon색으로
Canvas.Brush.Color:= clMaroon;
Canvas.Font.Color := clBlack;
end
{소계나 합계가 들어가는 Row가 고정적일 때
소계는 6번째, 합계는 10번째에 들어간다면
else if Row=6 then
begin
Brush.Color:= clMaroon;
L:= Rect.Right-TextWidth(tmp)-4;
end
else if Row=10 then
begin
Brush.Color:= clGreen;
L:= Rect.Right-TextWidht(tmp)-4;
end;
}
//소계나 합계가 들어가는 Row가 유동적일 때
else begin
if Cells[3,Row]='소계' then //합계가 들어가는 Row
begin
Brush.Color:= clYellow;
end
else if Cells[3,Row]='합계' then
begin
Brush.Color:= clGreen;
end;
//각 칼럼별로 데이타 종류에 따른 정렬
{case Col of
0: L:= Rect.Left+2; //일반 문자값은 좌측정렬
1,2: begin
//숫자형에 천단위로 콤마삽입
tmp:= FormatFloat('#,0',StrToIntDef(tmp,0));
//우측정렬
L := Rect.Right-TextWidth(tmp)-4;
end;
end;}
end;
Canvas.FillRect(Rect); //캔버스를 칠한다(기본값은 흰색)
Canvas.TextRect(Rect,L,Rect.Top+2,tmp); //문자를 뿌려준다(기본값은 검정색)
end;
end;
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
nuki
•
2000.02.18 00:44
1
COMMENTS
/
0
LIKES
DBGrid에서 에디팅하는방법 좀
DelChobo
•
2000.02.18 01:47
nuki wrote: > DBGrid에서 에디팅이 안되는데 원인이 무엇인지 모르겠네요 > datasource와 query콤포넌트...
델파이청년
•
2000.02.18 00:43
1
COMMENTS
/
0
LIKES
퀵리포트사용법에대해서...(page제어를 어떻게하는지)
유도삼
•
2000.02.18 08:15
델파이청년 wrote: > 퀵리포터에서 1page당 합계치내는 방법을 모르겠습니다. 마지막장의 총합계치는 >...
jcbok
2000.02.18 00:12
0
COMMENTS
/
0
LIKES
sql문사용과ApplyUpdate(dataset)어느것이 좋은가요?
jcbok
2000.02.18 00:09
0
COMMENTS
/
0
LIKES
분류먼저 해주시길 부탁드립니다.
black6
•
2000.02.17 23:43
1
COMMENTS
/
0
LIKES
TChart 의 동적생성....
DelChobo
•
2000.02.18 01:33
black6 wrote: > > 오늘도 국가와 민족을 위해 개발에 여념이 없으신 여러 개발자 여러분.. > 수고 많...
oracle8i
•
2000.02.17 23:39
1
COMMENTS
/
0
LIKES
string grid 에서 소계 합계 row를 다른 색을 할려면
질문좀 하겠습니다.. string grid 에서 소계, 합계 row를 다른 색을 할려구 하는데.. 잘 안됩니다.. 전 잘 모르니까 좀 자세하게 설명좀 해주세요.. 예제를 주시면 더욱 고맙겠구요.. 그럼 수고하세요...
박성훈
•
2000.02.18 01:14
oracle8i wrote: > 질문좀 하겠습니다.. > string grid 에서 소계, 합계 row를 다른 색을 할려구 하는데....
서지현
2000.02.17 23:34
0
COMMENTS
/
0
LIKES
Table 필드에 값 주기
델초
•
2000.02.17 23:33
1
COMMENTS
/
0
LIKES
이미지를 버튼처럼....??
유도삼
•
2000.02.18 08:21
델초 wrote: > 이미지를 버튼처럼 쓰고 있는데 마우스가 그 위로 갔을 때만 > 그림을 바꾸고 그 영역을 ...
최 소 영
•
2000.02.17 23:18
3
COMMENTS
/
0
LIKES
폼에서 프레임의 에디트 박스 같은것을 참조 할때
DelChobo
•
2000.02.17 23:58
최 소 영 wrote: > 질문입니다. > 폼이 하나 있고 여러개의 프레임으로 구성된 화면을 작성해씁니다. > ...
최 소 영
•
2000.02.18 00:44
DelChobo wrote: > 최 소 영 wrote: > > 질문입니다. > > 폼이 하나 있고 여러개의 프레임으로 구성된 ...
최용일
•
2000.02.21 12:18
최 소 영 wrote: > DelChobo wrote: > > 최 소 영 wrote: > > > 질문입니다. > > > 폼이 하나 있고 여...
rlaehdhks
•
2000.02.17 23:12
1
COMMENTS
/
0
LIKES
jpeg 를 db 에 저장은 불가능한가요?
이재식
•
2000.02.18 02:39
rlaehdhks wrote: > > > 안녕하세요 다시 질문드림니다.....급해서 > > BMP를 JPG로 변환해서 DB에 ...
델 초보올림
•
2000.02.17 23:02
2
COMMENTS
/
0
LIKES
<<<급>>>Table 필드에서 조건을...이럴땐 어떻게 하는지??
박성훈
•
2000.02.18 01:33
Table의 필터에서 숫자값도 비교가 되는지는 정확하게 모르겠습니다. 제 경험으로는 숫자는 필터를 걸기가...
cjseok
•
2000.02.17 23:25
테이블의 필터사용은 잘 모릅니다. 쿼리 문을 써보심이 어떨지요 Query.Sql.Add('Select age from 테이블...
김병문
•
2000.02.17 22:42
1
COMMENTS
/
0
LIKES
파라독스 테이블에 password 를 푸는 방법좀...
ASPA
•
2000.02.18 01:28
테이블을 보내주세요 풀어드리겠습니다. db뿐만 아니라 x*,y*등 관련파일모두 보내주세요 김병문 wrote...
왕왕 초보
•
2000.02.17 22:26
2
COMMENTS
/
0
LIKES
해결 방법 좀.
김병문
•
2000.02.17 22:52
우선 폼을 showmodal 로 띄웠는지 아니면 createform(..) 으로 띄웠는지 궁금하네요 showmodal 이면 프로...
dislike
•
2000.02.17 22:43
왕왕 초보 wrote: form을 부를 때 Fm1:=TFm1.Create(Self); Try Fm1.ShowModal; //모달로 폼을 부...
허광용
•
2000.02.17 22:06
4
COMMENTS
/
0
LIKES
날짜계산을 하고싶습니다. 도와주세요.
박성훈
•
2000.02.18 01:38
허광용 wrote: > > date1:=datetostr(DateTimePicker1.DateTime); > date2:=datetostr(datetimepicker2...
cjseok
•
2000.02.17 23:32
에러가 나지 않고 이상한값이 나온다면 시간에서 시간을 빼서 그런것같군요 Edit1.Text := dateToStr(Da...
홍성철
•
2000.02.17 22:19
허광용 wrote: > > date1:=datetostr(DateTimePicker1.DateTime); > date2:=datetostr(datetimepicker2...
홍성철
•
2000.02.18 00:39
edit1.Text := IntToStr(Round(DateTimePicker1.Date-DateTimePicker2.Date)); 로 해보세요
sonny
2000.02.17 21:02
0
COMMENTS
/
0
LIKES
델파이로 작성한 화면을 ...
경열
2000.02.17 20:21
0
COMMENTS
/
0
LIKES
컴파일에러가 납니다.-_-
양동욱
•
2000.02.17 20:03
1
COMMENTS
/
0
LIKES
QReport 출력형태에 대한 질문입니다.
hart
•
2000.02.17 21:18
양동욱 wrote: > 델파이 초보입니다. > 여러분의 많은 도움을 받고 있어 항상 감사하게 생각합니다. > ...
박성훈
2000.02.17 19:44
0
COMMENTS
/
0
LIKES
디버거가 멈추지 않는데요
변태훈
•
2000.02.17 19:34
1
COMMENTS
/
0
LIKES
maximum open cursors exceeded 에러.
변태훈
•
2000.02.18 04:00
변태훈 wrote: > 안녕하세요. > 오라클을 이용한 프로그램입니다. > 쿼리를 열고 while 루프를 돌면서 ...
헬프미플리즈
2000.02.17 19:30
0
COMMENTS
/
0
LIKES
응용프로그램실행 후 명령전달하기
oracle8i
2000/02/17 23:39
Views
183
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 질문좀 하겠습니다..
> string grid 에서 소계, 합계 row를 다른 색을 할려구 하는데..
> 잘 안됩니다..
> 전 잘 모르니까 좀 자세하게 설명좀 해주세요..
> 예제를 주시면 더욱 고맙겠구요..
> 그럼 수고하세요...
원하시는 기능은 TStringGrid의 OnDrawCell 이벤트에서 해결할 수 있습니다.
소계나 합계가 들어가는 Row가 유동적이라면 칼럼을 한개 더 두시고 소계나 합계를 구분
할 수 있는 구분문자를 두시면 될 것 같군요. 그런 후 아래와 같이 해보시면
될 것 같은데요. 그리고 원하시는 기능을 구현하는 방법이 팁란이나 Q&A에 많이 있으니
검색해 보시구요. 조금이라도 도움이 되었으면 좋겠군요.
procedure TfrmOrder.StringGrid1DrawCell(Sender: TObject; Col, Row: Integer;
Rect: TRect; State: TGridDrawState);
var
tmp:String;
L:Integer;
begin
with TStringGrid(Sender) do begin
tmp:= TStringGrid(Sender).Cells[Col,Row];
if Row=0 then begin // 첫번째 Row(보통 타이틀이 들어가는 곳)를 Maroon색으로
Canvas.Brush.Color:= clMaroon;
Canvas.Font.Color := clBlack;
end
{소계나 합계가 들어가는 Row가 고정적일 때
소계는 6번째, 합계는 10번째에 들어간다면
else if Row=6 then
begin
Brush.Color:= clMaroon;
L:= Rect.Right-TextWidth(tmp)-4;
end
else if Row=10 then
begin
Brush.Color:= clGreen;
L:= Rect.Right-TextWidht(tmp)-4;
end;
}
//소계나 합계가 들어가는 Row가 유동적일 때
else begin
if Cells[3,Row]='소계' then //합계가 들어가는 Row
begin
Brush.Color:= clYellow;
end
else if Cells[3,Row]='합계' then
begin
Brush.Color:= clGreen;
end;
//각 칼럼별로 데이타 종류에 따른 정렬
{case Col of
0: L:= Rect.Left+2; //일반 문자값은 좌측정렬
1,2: begin
//숫자형에 천단위로 콤마삽입
tmp:= FormatFloat('#,0',StrToIntDef(tmp,0));
//우측정렬
L := Rect.Right-TextWidth(tmp)-4;
end;
end;}
end;
Canvas.FillRect(Rect); //캔버스를 칠한다(기본값은 흰색)
Canvas.TextRect(Rect,L,Rect.Top+2,tmp); //문자를 뿌려준다(기본값은 검정색)
end;
end;