Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
dbgrid 에서 특정셀 의 색깔바꾸기 및 read only가 가능합니까?
dbgrid 에서 특정셀 의 색깔바꾸기를 자칭 고수라는
사람에게 물어 봤지만 안된다는 말 밖에 듣지못했습니다..
아시는 분 계시면 좀 가르쳐 주세요 답답해 죽겠습니다.....
6
COMMENTS
Mr.Q
•
2000.07.21 10:48
서봉석 wrote:
> dbgrid 에서 특정셀 의 색깔바꾸기를 자칭 고수라는
>
> 사람에게 물어 봤지만 안된다는 말 밖에 듣지못했습니다..
>
> 아시는 분 계시면 좀 가르쳐 주세요 답답해 죽겠습니다.....
됩니다. 데이터셋의 에디터에서나 그리드에서 add all field후,
그 readonly속성이나, 필드속성을 이용하면 됩니다.
막연하 예이지만, 고대로 올립니다.
그리드 ondrawcell이벤트..의 패러미터 field속성을 이용합니다.
...drawcell(...., Field:TField......);
if Field=anyfield then
begin
grid.canvas do
begin
if field.asstring='1' then
..
='2' then
fieldrect(rect);
textout(rect.left, rect.top, 스트링);
에고고.. 어려우시다라고 말씀하시면, 다시 생각해서 답변올리겠습니다. --;
0
0
삭제
수정
댓글
조규춘
•
2000.07.21 06:41
서봉석 wrote:
> dbgrid 에서 특정셀 의 색깔바꾸기를 자칭 고수라는
>
> 사람에게 물어 봤지만 안된다는 말 밖에 듣지못했습니다..
>
> 아시는 분 계시면 좀 가르쳐 주세요 답답해 죽겠습니다.....
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
//선택한셀의 색변화
If gdFocused in State then
with (Sender as TDBGrid).Canvas do begin
Brush.Color := clRed;
FillRect(Rect);
TextOut(Rect.Left, Rect.Top, Field.AsString);
end;
//조건에 맞는 특정셀의 색변화
if (Field.Fieldname ='필드이름') and (Field.AsString ='필드값') then
with DBGrid1.Canvas do begin
font.color := clBlack; //Font색
brush.Color := clYellow; //배경색
FillRect(Rect);
Textout(Rect.Left, Rect.top, Field.AsString);
end;
//조건이 맞는 레코드의 색변화
Fieldvalue := Field.DataSet.FieldByName('필드이름').AsFloat;
if (FieldValue >= 100) 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).canvas.TextOut(Rect.Left,Rect.Top,Field.Text );
(sender as TDbGrid).DefaultDrawDataCell(Rect,Field,State) ;
end
else begin
(sender as TDbGrid).DefaultDrawDataCell(Rect,Field,State) ;
end ;
end;
그리고 디비그리드의 read only는 전체에 먹히는 겁니다. 쩝.
그래서 어떤 특정셀에 수정을 할라꼬 하면.. abort 같은걸루 막는수밖에요..
0
0
삭제
수정
댓글
서봉석
•
2000.07.21 07:41
답변에 주셔서 감사합니다....
아래와 같이 코딩 한 것은 이미 여기서 소스를 보고 했거든요...
그런데...
ondrawdatacell 이벤트에서
아래와 같이 코딩을 했을 때....
column editor를 사용해서 column의 속성을 변경 시켰거든요...
타이틀을 한글로 주고
width를 변경해 줬는데....RESIZE를 FALSE로 하는 등...등...
변경시키지 않을 때에는 색깔이 나오는데..
변경시키고 난 후에는
이 이벤트를 타지 않습니다...
혹시 그 이유를 알 수 있을 까요???
> //조건이 맞는 레코드의 색변화
> Fieldvalue := Field.DataSet.FieldByName('필드이름').AsFloat;
> if (FieldValue >= 100) 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).canvas.TextOut(Rect.Left,Rect.Top,Field.Text );
> (sender as TDbGrid).DefaultDrawDataCell(Rect,Field,State) ;
> end
> else begin
> (sender as TDbGrid).DefaultDrawDataCell(Rect,Field,State) ;
> end ;
>
> end;
0
0
삭제
수정
댓글
Mr.Q
•
2000.07.21 13:47
서봉석 wrote:
> 답변에 주셔서 감사합니다....
> 아래와 같이 코딩 한 것은 이미 여기서 소스를 보고 했거든요...
> 그런데...
>
>
> ondrawdatacell 이벤트에서
> 아래와 같이 코딩을 했을 때....
>
> column editor를 사용해서 column의 속성을 변경 시켰거든요...
> 타이틀을 한글로 주고
> width를 변경해 줬는데....RESIZE를 FALSE로 하는 등...등...
>
>
> 변경시키지 않을 때에는 색깔이 나오는데..
> 변경시키고 난 후에는
> 이 이벤트를 타지 않습니다...
> 혹시 그 이유를 알 수 있을 까요???
>
>
>
> > //조건이 맞는 레코드의 색변화
> > Fieldvalue := Field.DataSet.FieldByName('필드이름').AsFloat;
> > if (FieldValue >= 100) 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).canvas.TextOut(Rect.Left,Rect.Top,Field.Text );
> > (sender as TDbGrid).DefaultDrawDataCell(Rect,Field,State) ;
> > end
> > else begin
> > (sender as TDbGrid).DefaultDrawDataCell(Rect,Field,State) ;
> > end ;
> >
> > end;
>
>
>
에디터에 나오듯, readonly속성이 있으니, 사용하면 되구요,
제시하신 문제는, 적절한이벤트(그게뭘까? -.-;)에 invalidate메서드를
한번 사용해보세요. 안해봐서 장담은 못하겠네요. ^^;;;
0
0
삭제
수정
댓글
조규춘
•
2000.07.21 09:11
서봉석 wrote:
> 답변에 주셔서 감사합니다....
> 아래와 같이 코딩 한 것은 이미 여기서 소스를 보고 했거든요...
> 그런데...
>
>
> ondrawdatacell 이벤트에서
> 아래와 같이 코딩을 했을 때....
>
> column editor를 사용해서 column의 속성을 변경 시켰거든요...
> 타이틀을 한글로 주고
> width를 변경해 줬는데....RESIZE를 FALSE로 하는 등...등...
>
>
> 변경시키지 않을 때에는 색깔이 나오는데..
> 변경시키고 난 후에는
> 이 이벤트를 타지 않습니다...
그럼 간단히 생각해서..강제적으로 그 이벤트를 발생시키면 되겠네요..
행복하셔요.. 규춘올림.
> 혹시 그 이유를 알 수 있을 까요???
>
>
>
> > //조건이 맞는 레코드의 색변화
> > Fieldvalue := Field.DataSet.FieldByName('필드이름').AsFloat;
> > if (FieldValue >= 100) 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).canvas.TextOut(Rect.Left,Rect.Top,Field.Text );
> > (sender as TDbGrid).DefaultDrawDataCell(Rect,Field,State) ;
> > end
> > else begin
> > (sender as TDbGrid).DefaultDrawDataCell(Rect,Field,State) ;
> > end ;
> >
> > end;
>
>
>
0
0
삭제
수정
댓글
Black}{ole
•
2000.07.21 06:21
서봉석 wrote:
> dbgrid 에서 특정셀 의 색깔바꾸기를 자칭 고수라는
>
> 사람에게 물어 봤지만 안된다는 말 밖에 듣지못했습니다..
>
> 아시는 분 계시면 좀 가르쳐 주세요 답답해 죽겠습니다.....
안녕하세요. ^^
OnDrawColumnCell이벤트에서 그려주면 될것 같네요.
참고하세요. 관련자료는 검색해보면.. 많이 있습니당.
그럼..20000.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
톰과 제리
2000.07.21 08:34
0
COMMENTS
/
0
LIKES
Rx리치에디터의 도큐먼트를 통짜로 디비로 저장????
김하늘
2000.07.21 07:57
0
COMMENTS
/
0
LIKES
invalid record buffer error ...(BLOB에러)
워니99
2000.07.21 07:46
0
COMMENTS
/
0
LIKES
1PC에 여러개의 ClientSocket을 Thread로 돌리려면
kay
2000.07.21 07:09
0
COMMENTS
/
0
LIKES
[급함] 이미지 리포트의 출력?!
hugehead
•
2000.07.21 07:06
4
COMMENTS
/
0
LIKES
DBEdit에서 무조건 key 입력 안받기.
김희중
•
2000.07.25 19:24
DBEdit 속성중 ReadOnly를 True로 설정하시면 됩니다. hugehead wrote: > 도와주세요... > DBEdit에 ...
Mr.Q
•
2000.07.21 10:19
에디트 enabled:=false하세요. 리드온리에도 포커스가 먹히고, 화면상으로 입력상태가 보이지만, 결과물...
허춘
•
2000.07.21 08:59
hugehead wrote: > 도와주세요... > DBEdit에 있는 값은 보여주고, 다른 곳에서 수정을 해야 하는데, 사...
hugehead
•
2000.07.22 02:01
DBEdit.enabled False가 되면 안됩니다. 그래서 문제이지요. DBEdit.Enabled가 False이면 database와 ...
수연이
•
2000.07.21 07:05
1
COMMENTS
/
0
LIKES
외부 변수는 어떻게 받나요?
Black}{ole
•
2000.07.21 07:34
수연이 wrote: > 프로그램을 실행할 때 변수를 받아야 하는데 어떻게 해야 하나요? > > 예를 들어 > ...
윤수경
•
2000.07.21 06:42
2
COMMENTS
/
0
LIKES
시스템의 날짜를 분리하려면...
Mr.Q
•
2000.07.21 12:18
윤수경 wrote: > "datetostr(date)"를 하면 시스템의 날짜를 "YYYY-MM-DD" 형식으러 보여 줍니다... > ...
조규춘
•
2000.07.21 06:57
윤수경 wrote: > "datetostr(date)"를 하면 시스템의 날짜를 "YYYY-MM-DD" 형식으러 보여 줍니다... > ...
영호
2000.07.21 06:19
0
COMMENTS
/
0
LIKES
dwinsock에서 접속한 클라이언트들의 핸들값 알아오기
서봉석
•
2000.07.21 06:06
6
COMMENTS
/
0
LIKES
dbgrid 에서 특정셀 의 색깔바꾸기 및 read only가 가능합니까?
dbgrid 에서 특정셀 의 색깔바꾸기를 자칭 고수라는 사람에게 물어 봤지만 안된다는 말 밖에 듣지못했습니다.. 아시는 분 계시면 좀 가르쳐 주세요 답답해 죽겠습니다.....
Mr.Q
•
2000.07.21 10:48
서봉석 wrote: > dbgrid 에서 특정셀 의 색깔바꾸기를 자칭 고수라는 > > 사람에게 물어 봤지만 안된다...
조규춘
•
2000.07.21 06:41
서봉석 wrote: > dbgrid 에서 특정셀 의 색깔바꾸기를 자칭 고수라는 > > 사람에게 물어 봤지만 안된다...
서봉석
•
2000.07.21 07:41
답변에 주셔서 감사합니다.... 아래와 같이 코딩 한 것은 이미 여기서 소스를 보고 했거든요... 그런데.....
Mr.Q
•
2000.07.21 13:47
서봉석 wrote: > 답변에 주셔서 감사합니다.... > 아래와 같이 코딩 한 것은 이미 여기서 소스를 보고 했...
조규춘
•
2000.07.21 09:11
서봉석 wrote: > 답변에 주셔서 감사합니다.... > 아래와 같이 코딩 한 것은 이미 여기서 소스를 보고 했...
Black}{ole
•
2000.07.21 06:21
서봉석 wrote: > dbgrid 에서 특정셀 의 색깔바꾸기를 자칭 고수라는 > > 사람에게 물어 봤지만 안된다...
김병훈
•
2000.07.21 04:27
1
COMMENTS
/
0
LIKES
폼없는 유닛에서요...
최용일
•
2000.07.21 19:02
안녕하세요. 최용일입니다. 함수 원형은 Interface절에 기술하고 코드는 Implementation절에 기술하세요...
빙
•
2000.07.21 04:10
1
COMMENTS
/
0
LIKES
[급질문]자꾸 에러가 떠요
최용일
•
2000.07.21 19:04
안녕하세요. 최용일입니다. DelphiX_for5란 패키지가 설치안된것 같습니다. DelphiX_for5란 패키지를 설...
djha
•
2000.07.21 04:08
1
COMMENTS
/
0
LIKES
ListBox click를 대신할수 있는 법은?
Black}{ole
•
2000.07.21 04:29
djha wrote: > > 어디선가 같은 질문내용을 본적이 있는것 > 같은데 찾아지지가 않는군요. > > List...
강성훈
•
2000.07.21 03:50
3
COMMENTS
/
0
LIKES
디렉토리 리스트박스에서 현재의 경로를 넘겨주기..
Mr.Q
•
2000.07.21 10:51
강성훈 wrote: > 예를 들어 디렉토리 리스트박스에서 현재의 경로가 > "C:tempkkk" > 에 있다고 가정할...
조규춘
•
2000.07.21 04:08
강성훈 wrote: > 예를 들어 디렉토리 리스트박스에서 현재의 경로가 > "C:tempkkk" > 에 있다고 가정할...
강성훈
•
2000.07.21 20:00
감사합니다
김태영
•
2000.07.21 03:25
5
COMMENTS
/
0
LIKES
폼1의 변수를 폼2에 넘겨주려면...
이주흥
•
2000.07.21 03:31
김태영
•
2000.07.21 03:43
조규춘
•
2000.07.21 03:51
김태영
•
2000.07.21 04:00
조규춘
•
2000.07.21 04:04
4master
•
2000.07.21 03:23
1
COMMENTS
/
0
LIKES
[하얀까마귀님 감사.^^] ADO 질문.고수님들...
어린왕자
•
2000.07.21 03:52
4master wrote: > Access랑 dBase를 ADO를 사용하여서 연결하였습니다. > 근데... ADOConnection에서... ...
신승욱
•
2000.07.21 03:22
1
COMMENTS
/
0
LIKES
MDB에서 트랜잭션 처리?
배우미
•
2000.07.22 17:44
신승욱 wrote: > 가내두루 평안하오신지요..???? > 갑자기 어려운 문제에 부닥쳐 이렇게 질문올립니다.. ...
김선달
•
2000.07.21 03:11
1
COMMENTS
/
0
LIKES
ScreenToClient, ClientTocreen 차이점은?
Black}{ole
•
2000.07.21 05:04
김선달 wrote: > ScreenToClient메소드 와 ClientToScreen 에 대한 자세한 설명을 좀 해주세요 > 감사합...
주현이
•
2000.07.21 02:46
2
COMMENTS
/
0
LIKES
퀵리포트의 qrband나 qrstringband에서 세로구분선을 그리거나 ..
김영해
•
2000.07.21 03:00
주현이 wrote: > 퀵리포트의 qrband나 qrstringband에서 세로구분선을 그리거나 만드는 방법이 있나요.. ...
주현이
•
2000.07.21 03:02
^^;
heimdal
•
2000.07.21 02:33
2
COMMENTS
/
0
LIKES
날짜검색
허춘
•
2000.07.21 08:55
heimdal wrote: > 안녕하세여.. > 며칠전에 검색으루 질문을 드렸던 헴달입니다.. > 근데 정말 엄청나게...
heimdal
•
2000.07.28 02:43
허춘 wrote: > heimdal wrote: > > 안녕하세여.. > > 며칠전에 검색으루 질문을 드렸던 헴달입니다.. >...
완전 초보
•
2000.07.21 02:24
1
COMMENTS
/
0
LIKES
[저장]MDI에서 저장하는 방법
parkisu
•
2000.07.21 10:11
완전 초보 wrote: > 저는 완전 초보입니다. > save를 눌르거나 saveas를 눌렸을때 > saveDialog가 뜨고 ...
서봉석
2000/07/21 06:06
Views
724
Likes
0
Comments
6
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> dbgrid 에서 특정셀 의 색깔바꾸기를 자칭 고수라는
>
> 사람에게 물어 봤지만 안된다는 말 밖에 듣지못했습니다..
>
> 아시는 분 계시면 좀 가르쳐 주세요 답답해 죽겠습니다.....
됩니다. 데이터셋의 에디터에서나 그리드에서 add all field후,
그 readonly속성이나, 필드속성을 이용하면 됩니다.
막연하 예이지만, 고대로 올립니다.
그리드 ondrawcell이벤트..의 패러미터 field속성을 이용합니다.
...drawcell(...., Field:TField......);
if Field=anyfield then
begin
grid.canvas do
begin
if field.asstring='1' then
..
='2' then
fieldrect(rect);
textout(rect.left, rect.top, 스트링);
에고고.. 어려우시다라고 말씀하시면, 다시 생각해서 답변올리겠습니다. --;