요즘 웹이 창궐하다보니 고객의 요구도 하늘을 찌를 것 같네요...
어플리케이션에서 코드를 검색한다든가 마스터 테이블을 검색하고자 할 때...
C/S 화면이 마치 웹 화면같이 꾸며지기를 바라는 곳이 많네요...
그러다보니 그리드도 멋지게 장식을 해줘야 할 것 같은데...
제가 지금 하고자 하는 내용은...
DBGrid 에서 레코드를 번갈아 가면서 색을 반복 시키는 것입니다...
그러니까...예를 들어서...
1. 빨간색
2. 파란색
3. 빨간색
4. 파란색
.
.
.
이렇게 하고 싶다면 어떻게 해야 하는건지...?
PowerBuilder 의 DataWindow 경우에는 아주 쉽게 구현이 가능한데...
델파이에서는 어떻게 해야하는지 알 수가 없어서요...
그렇다고 바보같이 Loop 를 돌면서 일일히 색을 바꿔줄 수도 없는 노릇이고...
고수님들의 조언 부탁드립니다...
>
> 요즘 웹이 창궐하다보니 고객의 요구도 하늘을 찌를 것 같네요...
> 어플리케이션에서 코드를 검색한다든가 마스터 테이블을 검색하고자 할 때...
> C/S 화면이 마치 웹 화면같이 꾸며지기를 바라는 곳이 많네요...
> 그러다보니 그리드도 멋지게 장식을 해줘야 할 것 같은데...
>
> 제가 지금 하고자 하는 내용은...
> DBGrid 에서 레코드를 번갈아 가면서 색을 반복 시키는 것입니다...
> 그러니까...예를 들어서...
>
> 1. 빨간색
> 2. 파란색
> 3. 빨간색
> 4. 파란색
> .
> .
> .
>
> 이렇게 하고 싶다면 어떻게 해야 하는건지...?
>
> PowerBuilder 의 DataWindow 경우에는 아주 쉽게 구현이 가능한데...
> 델파이에서는 어떻게 해야하는지 알 수가 없어서요...
> 그렇다고 바보같이 Loop 를 돌면서 일일히 색을 바꿔줄 수도 없는 노릇이고...
>
> 고수님들의 조언 부탁드립니다...
이렇게하시면 되거든요~!
그런데 조금 부드럽지가 못하네요...연구하면 잘될것도 같은데...
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
var
RH,R : Integer;
begin
RH := Rect.Bottom - Rect.Top;
R := (Rect.top div RH) - 1;
R := R mod 2;
if (R = 0) then begin
(Sender as TDbGrid).canvas.brush.Color := clAqua;
(Sender as TDbGrid).canvas.font.Color := clRed;
(Sender as TDbGrid).canvas.FillRect(Rect);
(sender as TDbGrid).DefaultDrawDataCell(Rect,Field,State);
end
else begin
(sender as TDbGrid).DefaultDrawDataCell(Rect,Field,State);
end ;
end;