Q&A

  • 디비그리드에서 내용 바꿔서 보여주기 어떻게 하나요?
이름 등급              이름 등급
---- ----              ---- ----
  A     1        --->    A     상
  B     2                   B     중
  C     3                   C     하

현재는 1,2,3 으로 나오는데

그걸 상,중,하 로 바꾸고 싶거든요...

그리드에서 보여줄때 바꿔주면 될것 같은데 어떻게 해야할지 모르겠습니다.

알려주세요~
4  COMMENTS
  • Profile
    홍성락 2002.08.28 21:17
    hsr////////////////////////////////////////////////////
    아래것을 잘 정리해보세요,
    '하'는 우측으로 붙인것처럼 잘조정하면 좌,우,중앙으로 나옵니다.
    procedure TForm1.DBGrid2DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    begin
        with TDBGrid(Sender) do begin
             if Field.FieldName = '등급' then begin
                case Field.AsInteger of
                     1 : Canvas.TextRect(Rect,Rect.Left,Rect.Top,'상');
                     2 : Canvas.TextRect(Rect,Rect.Left,Rect.Top,'중');
                     3 : canvas.TextRect(Rect, Rect.Right - canvas.TextWidth('하') - 3, Rect.Top, '하')
                end;
             end;
        end;
    end;
  • Profile
    수서니 2002.08.29 01:28
    with TDBGrid(Sender) do begin
       if Field.FieldName = '종류' then begin
         case Field.AsInteger of
            1 : canvas.TextRect(rect,rect.Left,rect.Top,'토목');
            2 : canvas.TextRect(rect,rect.Left,rect.Top,'a');
         end;
       end;
    end;

    이렇게 했는데 아무 변화가 없네요....  이구...

    if Field.FieldName = '종류' then

    여기서 필드명을 비교하나요? 디비그리드에 보이는 이름을 비교하나요?

    1 : canvas.TextRect(rect,rect.Left,rect.Top,'토목');
                                 --------------------- 이건 좌표값인가요?

    하나도 몰라서리 잘 안되네용...   자세한 설명좀 부탁드립니당~
            

  • Profile
    홍성락 2002.08.29 02:13
    컬럼 에디터를 사용하셨군요, 그러면 DrawDataCell 대신
    DrawColumnCell 이벤트를 쓰세요.
    rect은 해당 컬럼의 사각 좌표입니다.
    TextRect인자를 보시면 2,3번째가 글자의 시작 x,y좌표이므로 잘 조정하시면
    왼쪽오른쪽들여쓰기가 가능합니다.
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      with TDBGrid(Sender) do begin
       if Column.Title.Caption = '종류' then begin
         case Column.Field.AsInteger of
            1 : canvas.TextRect(rect,rect.Left,rect.Top,'토목');
            2 : canvas.TextRect(rect,rect.Left,rect.Top,'a');
         end;
       end;
      end;
    end;
    hsr///////////////////////////////////////////////////////////////
  • Profile
    머슴 2002.08.28 21:08
    1. 쿼리에서 ...

    DB는 오라클인경우 decode문이나 Case문을 이용하면 됩니다.
    MS-SQL인 경우는 Case문을 이용하시면 됩니다.

    SELECT DECODE(등급,'1','상,'2','중','3','하') 등급
        FROM 테이블
       WHERE 조건;

    2. CalcField를 이용한 방법

    procedure TForm1.Query1CalcFields(DataSet: TDataSet);
    begin

       With DataSet do
        begin
          Case StrToIntDef(FieldByName('등급').AsString,0) of
          1: FieldByName('display').AsString := '상';
          2: FieldByName('display').AsString := '중';
          3: FieldByName('display').AsString := '하';
        end;

    end;







    • 이덕영
    • 2002.08.29 03:46
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2002.08.29 04:18
      1. Create 2. Show - Visible 3. ReSize 4. Activate - Visible 5. Paint - Visible 6. CloseQu...
    • 하얀까마귀
      2002.08.29 05:52
      안녕하세요 하얀까마귀 입니다. ^^ 빨리 답변하시다가 실수하신듯하네요.. 저도 그럴때가 왕왕있죠.. ...
    • 구창민
      2002.08.29 21:01
      수정했습니다. 날카로운 지적 캄사여~~ ㅋㅋ
    • 이덕영
      2002.08.29 18:46
      ...
    • KDDG_ZZOM
      2002.08.29 03:52
      크리에이트가 먼저 실행될것같네요...^^ 그냥 이벤트에다가 showmessage('아무거나'); 이케 해보시면 ...
    • KDDG_ZZOM
      2002.08.29 03:05
      쿼리문이 잘못된것같기도 하네요... 쿼리문을 어떻게 맹글었는지... 원소스를 올려보세요... 아니면&nbs...
    • 이덕영
      2002.08.29 03:44
      ..
    • 홍성락
      2002.08.29 03:08
      hsr/////////////////////////////////////////////////// procedure TForm1.FESVMSExit(Sender: TObject)...
    • 구창민
      2002.08.29 04:20
      말씀하신 포커스라는게 어떤 포커스를 말씀하시는 건지여? 컨트롤의 포커스 인가여? 아니면 데이타의 위...
    • 김상수
    • 2002.08.29 01:11
    • 9 COMMENTS
    • /
    • 0 LIKES
    • KDDG_ZZOM
      2002.08.29 03:07
    • 김상수
      2002.08.29 03:34
    • KDDG_ZZOM
      2002.08.29 03:49
    • 김상수
      2002.08.29 03:59
    • KDDG_ZZOM
      2002.08.29 04:12
    • 김상수
      2002.08.29 04:26
    • 곰다방~미스김
      2002.08.29 01:33
    • • • •
    • 정진훈
    • 2002.08.29 00:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2002.08.29 04:23
      아래 내용이 도움이 되실지 모르겠네여. LPT1 포트에 연결해서 출력하는 내용인데 연결하는 부분을 ...
    • 세균맨
    • 2002.08.28 23:41
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2002.08.29 04:25
      뭐라 드릴말씀이 없군여..^_^;; Access violation  <-- 이 단어로 검색한번 해 보세여. ...
    • 곰다방~미스김
      2002.08.29 01:36
      소스를 올리시는게 돔 될거같구염... 우선 아래의 메시지는 아직 생성되지않은 녀석을 호출하면 발생합니...
    • 짱아
    • 2002.08.28 23:38
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이상우
      2002.08.29 00:08
      제 짧은 소견으로는 DBGrid는 사용 못 하실겁니다 DBGrid 는 DB Connection과 관련하여 DataSource 가 필...
    • 짱아
      2002.08.29 00:44
      그렇다면 stringgrid를 써서 어떻게 하는지.. 좀 구체적으로 설명을 해주시면 안될까염.. 넘 막막하네염....
    • 김형수
      2002.08.29 02:45
      var     txt: textfile;     str : string;   &nbs...
    • 김철수
    • 2002.08.28 23:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김동묵
      2002.08.29 01:42
      Cursor Position을 다음과 같이 사용할 수 있습니다. procedure TForm1.Chart1MouseMove(Sender: TObjec...
    • 김종균
    • 2002.08.28 23:09
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.08.28 23:26
      hsr///////////////////////////////////////////////// 간단히 말씀드릴께요 Pascal은  proce...
    • 세균맨
      2002.08.28 23:22
      함수면 return 값이 있죠. 함수가 return하는  type을 말하는 것 같은데요. 즐코하시구요 ...
    • 이성현
    • 2002.08.28 23:06
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이병성
    • 2002.08.28 22:47
    • 0 COMMENTS
    • /
    • 0 LIKES
    • KDDG_Check
      2002.08.28 22:14
      안녕하세요, 여유로움입니다. 이벤트의 인수중 Sender를 이용하심 될거 같네여
    • ▲┫┃■┃콜론
      2002.08.28 22:48
      감사해요~ 죄송하지만... 사용하는 방법 점 부탁드릴께요~
    • 최용일
      2002.08.28 22:53
      안녕하세요. 최용일입니다. 모든 이벤트의 파라매터에는 Sender: TObject라는게 들어갑니다. 이 Send...
    • ▲┫┃■┃콜론
      2002.08.28 23:20
    • 나옹이
    • 2002.08.28 21:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.08.28 23:01
      hsr///////////////////////////////////////////////////// 아래처럼해보세요 str := DirectoryListBox1...
    • 최용일
      2002.08.28 23:00
      안녕하세요. 최용일입니다. ItemIndex속성을 이용하세요... // DirectoryListBox의 OnClick이벤트 p...
    • 수서니
    • 2002.08.28 20:56
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.08.28 21:17
      hsr//////////////////////////////////////////////////// 아래것을 잘 정리해보세요, '하'는 우측으로 ...
    • 수서니
      2002.08.29 01:28
      with TDBGrid(Sender) do begin    if Field.FieldName = '종류' then begin   &nbs...
    • 홍성락
      2002.08.29 02:13
      컬럼 에디터를 사용하셨군요, 그러면 DrawDataCell 대신 DrawColumnCell 이벤트를 쓰세요. rect은 해당 ...
    • 머슴
      2002.08.28 21:08
      1. 쿼리에서 ... DB는 오라클인경우 decode문이나 Case문을 이용하면 됩니다. MS-SQL인 경우는 Case...
    • 최여옥
    • 2002.08.28 20:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.08.28 22:33
      hsr//////////////////////////////////////////////// ListView의 속성 OwnerDraw를 True하세요 아래는 ...
    • 홍성락
      2002.08.28 20:42
      hsr////////////////////////////////////////////////////////////////// 정확히 말씀해 주시면 의도하는...
    • ㄴ ㅏ ㅁ ㅑ
      2002.08.28 21:26
      위와같이 했더니 에러도 나지 않고 디버깅시도 잘 됩니다^^ 그런데... SpinEdit 의 key를 누를때는 ...
    • ㄴ ㅏ ㅁ ㅑ
      2002.08.28 23:06
      위의 식에다 ---------------------------------------------------- procedure TForm1.seBottomClick...
    • 장재형
    • 2002.08.28 20:12
    • 0 COMMENTS
    • /
    • 0 LIKES