Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
dbgird에서 특정row 색넣고 싶습니다..
dbgrid에서 첫번째 row의 글자 색 또는 셀의 색을 넣고 싶습니다.
어떻게 해야하나요~?
고수님들의 조언 부탁드립니다..
4
COMMENTS
강인규
•
2000.03.14 00:46
조금만 찾아보심 답을 찾을 수 있었을텐데....
김영대님의 답변을 올려드립니다.
DBGrid1DrawColumnCell이벤트에 아래와 같이 코딩하심 됩니다.
두가지 조건을 주는 이유는 셀렉트되었을때 처리를 위해서입니다.
소스는 쉬워서 함 해보시면 알겁니다.
begin
with TDBGrid(Sender).Canvas do begin
if Column.FieldName = '필드명' then begin
Brush.Color := clYellow;
Font.Color := clBlack;
end
else begin
Brush.Color := clWindow;
Font.Color := clWindowText;
end;
if (gdFocused in State) or (gdSelected in State) then begin
Brush.Color := clHighlight;
Font.Color := clHighlightText;
end;
FillRect(Rect);
TextOut(Rect.Left+2,Rect.Top+2,Column.Field.AsString);
Brush.Style := bsSolid;
Brush.Color := clWindow;
end;
end;
김지현 wrote:
> dbgrid에서 첫번째 row의 글자 색 또는 셀의 색을 넣고 싶습니다.
> 어떻게 해야하나요~?
> 고수님들의 조언 부탁드립니다..
0
0
삭제
수정
댓글
김지현
•
2000.03.14 01:58
강인규님.. 답변감사합니다..
제가 초보라서요..
근데.. 저는 특정 열(column)이 아닌 특정 행(row)의 폰트색을 바꾸고 싶고든요.. ^^
나름대로 찾아본다고 하긴했는데.. 눈에 띄는것이 없네요~
고수님들.. 다시 한번 답변주시면 감사하겠습니다.
0
0
삭제
수정
댓글
강인규
•
2000.03.14 02:04
row와 column의 개념을 제가 이해하지 못하는 건가요?
프로그램을 짜보시면 될텐데, 헐...
조건에 따라 색을 달리하는 (가로로)프로그램 같이 올리니 입맛에 맞게 골라쓰세요. 쩝.
똑같은 이벤트에 코딩하세요.
with TDBGrid(Sender).Canvas do begin
if table1필드명.Value > 원하는 조건 then begin
Brush.Color := clred;
Font.Color := clBlack;
end
else begin
Brush.Color := $00D6D6CD;
Font.Color := clWindowText;
end;
if (gdFocused in State) or (gdSelected in State) then begin
if table1필드명.Value > 원하는 조건 then begin
Brush.Color := clPurple;
Font.Color := clHighlightText;
end
else begin
Brush.Color := $00A00000;
Font.Color := clHighlightText;
end;
end;
FillRect(Rect);
TextOut(Rect.Left+1,Rect.Top+1,Column.Field.AsString);
Brush.Style := bsSolid;
Brush.Color := clWindow;
end;
end;
김지현 wrote:
> 강인규님.. 답변감사합니다..
> 제가 초보라서요..
> 근데.. 저는 특정 열(column)이 아닌 특정 행(row)의 폰트색을 바꾸고 싶고든요.. ^^
> 나름대로 찾아본다고 하긴했는데.. 눈에 띄는것이 없네요~
> 고수님들.. 다시 한번 답변주시면 감사하겠습니다.
>
0
0
삭제
수정
댓글
조군희
•
2000.03.17 19:30
아래와 같이 코딩하시면 쉽게 작업하실수 있습니다..
Cell정렬방식도 함께 해결할수 있고요...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, ExtCtrls, Grids, DBGrids;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
Panel1: TPanel;
DataSource1: TDataSource;
Table1: TTable;
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
procedure DrawField(const Value : String;
const Rect : TRect;
vCanvas : TCanvas;
vFont: TFont;
vAlignment: TAlignment;
FontStyle : TFontStyles;
FontColor : TColor;
BGColor : TColor);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{이 부분의 함수를 추가 시키시고요...}
procedure TForm1.DrawField(const Value : String;
const Rect : TRect;
vCanvas : TCanvas;
vFont: TFont;
vAlignment: TAlignment;
FontStyle : TFontStyles;
FontColor : TColor;
BGColor : TColor);
var
I : Integer;
begin
I := 0;
//First, fill in the background color of the cell
vCanvas.Brush.Color := BGColor;
vCanvas.FillRect(Rect);
//SetBkMode ensures that the background is transparent
SetBkMode(Canvas.Handle, TRANSPARENT);
//Set the passed font properties
vCanvas.Font := vFont;
vCanvas.Font.Color := FontColor;
vCanvas.Font.Style := vCanvas.Font.Style + FontStyle;
//Set Text Alignment
case vAlignment of
taRightJustify :
begin
SetTextAlign(vCanvas.Handle, TA_RIGHT);
I := Rect.Right - 2;
end;
taLeftJustify :
begin
SetTextAlign(vCanvas.Handle, TA_LEFT);
I := Rect.Left + 2;
end;
taCenter :
begin
SetTextAlign(vCanvas.Handle, TA_CENTER);
I := (Rect.Right + Rect.Left) DIV 2;
end;
end; { case }
//Draw the text
vCanvas.TextRect(Rect, I, Rect.Top + 2, Value);
SetTextAlign(vCanvas.Handle, TA_LEFT);
end;
// DBGrid1DrawColumnCell 의 이벤트에서 코딩하시구요..
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
with Sender as TDBGrid, DataSource.DataSet do
// 아래와 같이 조건식을 넣으시면 됨니다.
if (FieldByName('Salary').AsFloat < 30000) then
DrawField(Column.Field.DisplayText, Rect, Canvas,
Column.Font, Column.Alignment, [fsBold],
clYellow, clRed);
// clYellow는 글자 색상
// clRed는 바탕색상
end;
end.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
백록화
•
2000.03.14 07:05
2
COMMENTS
/
0
LIKES
cgi에서 파일생성....
화랑
•
2000.03.14 18:32
저기 위의 루틴을 보면 틀린것은 없는데.. 음.. 뭐~ 혹시 선언부에서 잘못한건 아닌가요? 그리고 ...
백록화
•
2000.03.15 03:28
yo~ ^^;; 에고...화랑님..감사...헤헤!! 그게 틀렸네요...핫핫.. (으~ 열라땀나는군요...크크~) Clo...
정호원
•
2000.03.14 06:23
1
COMMENTS
/
0
LIKES
델파이와 오라클...ㅠ.ㅠ
하얀까마귀
•
2000.03.14 23:20
안녕하세요 하얀까마귀 입니다. 질문이 너무 포괄적이네요.... 쩝... 지금 말씀하신건 일반적인 SI프...
박영만
•
2000.03.14 06:31
1
COMMENTS
/
0
LIKES
MS Access에 UpdateQuery를 이용, 입력 Error ?
코스모스
•
2000.03.14 07:30
저와 비슷한 경험을 하신것 같군요. 일반적인(Paradox 등등) MDB는 join 및 기타 명령어가 좀 달라요. 정...
이빈
•
2000.03.14 05:51
2
COMMENTS
/
0
LIKES
skinform관하여..도와주세요
이빈
•
2000.03.14 19:40
최용일 wrote: > 무슨 말씀이신지... 제가 한델 자료실의 SkinForm을 사용해 보았는데 아주 > 잘 작동하...
이빈
•
2000.03.15 02:19
최용일님 친절한 답변 진심으로 감사합니다. 모르는게 많아서 자주 질문 하겠습니다. 그럼 행복하세요....
채재호
2000.03.14 05:32
0
COMMENTS
/
0
LIKES
ActivForm에서 버젼 관리(급해요. 도와주세요!!1)
윤진석
•
2000.03.14 05:32
1
COMMENTS
/
0
LIKES
[일반] MDI와 SDI
강인규
•
2000.03.14 07:00
각각의 단위 프로젝트를 따로 컴파일 하셨다면... 메인폼(MDIForm)만 하나 만들고 단위모듈을 불러와서...
수아카
2000.03.14 05:10
0
COMMENTS
/
0
LIKES
델파이로 된 icq소스 같은거 구할수 있을까요??
김승용
•
2000.03.14 04:31
2
COMMENTS
/
0
LIKES
델파이에서 이미지 처리 방법
최용일
•
2000.03.14 05:05
http://web.tiscalinet.it/encomps/ 이곳에서 ImageEn라이브러리를 구하시면 됩니다. JPEG, TIFF, PNG, ...
하얀까마귀
•
2000.07.27 20:53
안녕하세요 하얀까마귀 입니다. jpg, bmp, ico, emf, wmf를 기본적으로 지원합니다. 4.0은 안써봐서 ...
hee
•
2000.03.14 03:38
1
COMMENTS
/
0
LIKES
소스를 분석하다가
최용일
•
2000.03.14 03:51
TStringGrid.Selection은 선택영역 사각형을 표시하는 TGridCoord 혹은 TGridRect 타입의 좌표영역이 저...
최재원
•
2000.03.14 03:30
1
COMMENTS
/
0
LIKES
MS_Help Workshop에서 ?
보는이
•
2000.03.14 04:11
최재원 wrote: > 붙여 실행을 해보았는데요, > > 다운되거나 하는 것은 아니고 도움말을 보여 줄때 > ...
문영봉
•
2000.03.14 03:10
3
COMMENTS
/
0
LIKES
nt sql서버로 win98에서 odbc연결시 에러가 납니다
김두현
•
2000.03.14 06:02
문영봉 wrote: > 안녕하세요? > nt4.0의 ms-sql서버로로 win98에서 odbc로 연결시 > 아래와 같은 에...
문영봉
•
2000.03.14 18:22
김두현 wrote: > 문영봉 wrote: > > 안녕하세요? > > nt4.0의 ms-sql서버로로 win98에서 odbc로 연결...
문영봉
•
2000.03.15 03:07
문영봉 wrote: > 김두현 wrote: > > 문영봉 wrote: > > > 안녕하세요? > > > nt4.0의 ms-sql서버로로...
한창헌
•
2000.03.14 02:39
1
COMMENTS
/
0
LIKES
작업중 하드를 읽어요 이것을 방지하려면??
최용일
•
2000.03.14 03:04
Tools메뉴의 Editor Options..라는 메뉴를 클릭하시면 Code Insight탭이 있습니다. 거기에서 자동화 옵션...
노태협
2000.03.14 02:32
0
COMMENTS
/
0
LIKES
odbc연결을 한번에 하는 방법은 없나요?
이희선
2000.03.14 01:25
0
COMMENTS
/
0
LIKES
MS-Product을 Control할려면..
문영봉
•
2000.03.14 01:14
2
COMMENTS
/
0
LIKES
칼라 버튼 가지신분 암도 없으세요?
조피디
•
2000.03.14 01:46
자료실의 FlatStyle컴포넌트를 다운받아서 사용해보세요.. 소스공개 프리웨어랍니다.. 그냥 칼라뿐만이...
문영봉
•
2000.03.14 03:29
조피디 wrote: > > 자료실의 FlatStyle컴포넌트를 다운받아서 사용해보세요.. > 소스공개 프리웨어랍니...
dimonz
•
2000.03.14 01:12
2
COMMENTS
/
0
LIKES
update...
임형호
•
2000.03.14 02:27
dimonz wrote: > 안녕하세요 ? > a,b 두 개의 db 가 있는데 > a,b db 의 일정 필드의 조건이 같을때 ...
blueSky
•
2000.03.14 01:54
dimonz wrote: > 안녕하세요 ? > a,b 두 개의 db 가 있는데 > a,b db 의 일정 필드의 조건이 같을때 ...
도와주
2000.03.14 00:53
0
COMMENTS
/
0
LIKES
도움말에 대해서
김지현
•
2000.03.14 00:20
4
COMMENTS
/
0
LIKES
dbgird에서 특정row 색넣고 싶습니다..
dbgrid에서 첫번째 row의 글자 색 또는 셀의 색을 넣고 싶습니다. 어떻게 해야하나요~? 고수님들의 조언 부탁드립니다..
강인규
•
2000.03.14 00:46
조금만 찾아보심 답을 찾을 수 있었을텐데.... 김영대님의 답변을 올려드립니다. DBGrid1DrawColumnCel...
김지현
•
2000.03.14 01:58
강인규님.. 답변감사합니다.. 제가 초보라서요.. 근데.. 저는 특정 열(column)이 아닌 특정 행(row)의 폰...
강인규
•
2000.03.14 02:04
row와 column의 개념을 제가 이해하지 못하는 건가요? 프로그램을 짜보시면 될텐데, 헐... 조건에 따...
조군희
•
2000.03.17 19:30
아래와 같이 코딩하시면 쉽게 작업하실수 있습니다.. Cell정렬방식도 함께 해결할수 있고요... unit Un...
최진현
2000.03.14 00:12
0
COMMENTS
/
0
LIKES
델파이에서 netmeeting 사용하는 방법에 대해 알고 싶습니다
문영봉
•
2000.03.13 23:33
2
COMMENTS
/
0
LIKES
dbgrid에서 edit로 내용을 보내는 방법좀...
임형호
•
2000.03.14 02:39
문영봉 wrote: > 많은 도움을 받고 있어서 감사를 먼저 드립니다. > dbgrid 에서 화살표를 위 아래,좌,우...
종이학
•
2000.03.14 00:08
문영봉 wrote: > 많은 도움을 받고 있어서 감사를 먼저 드립니다. > dbgrid 에서 화살표를 위 아래,좌,우...
김지현
2000/03/14 00:20
Views
188
Likes
0
Comments
4
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
김영대님의 답변을 올려드립니다.
DBGrid1DrawColumnCell이벤트에 아래와 같이 코딩하심 됩니다.
두가지 조건을 주는 이유는 셀렉트되었을때 처리를 위해서입니다.
소스는 쉬워서 함 해보시면 알겁니다.
begin
with TDBGrid(Sender).Canvas do begin
if Column.FieldName = '필드명' then begin
Brush.Color := clYellow;
Font.Color := clBlack;
end
else begin
Brush.Color := clWindow;
Font.Color := clWindowText;
end;
if (gdFocused in State) or (gdSelected in State) then begin
Brush.Color := clHighlight;
Font.Color := clHighlightText;
end;
FillRect(Rect);
TextOut(Rect.Left+2,Rect.Top+2,Column.Field.AsString);
Brush.Style := bsSolid;
Brush.Color := clWindow;
end;
end;
김지현 wrote:
> dbgrid에서 첫번째 row의 글자 색 또는 셀의 색을 넣고 싶습니다.
> 어떻게 해야하나요~?
> 고수님들의 조언 부탁드립니다..