Q&A

  • DBGrid에서 Bmp를 표시하려면??
DBGrid에 bmp 이미지를 표시하고 싶습니다
쿼리에는 이미지 파일명이 들어가 있구요..
이 이미지 파일을 원하는 필드에 원하는 사이즈로 표시하고 싶은데요..
잘 안되네요.ㅜㅜ+;
도와주세요
아래는 DBGrid1DrawColumnCell 이벤트에 제가 코딩한 부분입니다

      FileNm := ExtractFilePath(Application.ExeName) + '\Set\Image\' + dbGrid1.Fields[1].AsString + '.Bmp';
      bmp.LoadFromFile(fileNm);
      bmpWidth := (rect.Bottom - Rect.Top) * 2;
      Outrect.Right := Rect.Left + bmpwidth;
      DBgrid1.Canvas.StretchDraw(Outrect, bmp);

위와 같이 코딩했을경우 전체 필드에 이미지가 다 들어가구요.
도 기본 로우사이즈의 사이즈로 이미지가 들어갑니다


원하는 칼럼에 이미지를 넣는법,
또 이미지 가로 세로 사이즈를 지정하는법 을 알고 싶네요..

답변달아주세요^^
5  COMMENTS
  • Profile
    소울해커 2008.01.30 01:53
    FileNm := ExtractFilePath(Application.ExeName) + '\Set\Image\' + dbGrid1.Fields[1].AsString + '.Bmp';
    Outrect := DBGrid1.CellRect(3, 3);
    bmp.LoadFromFile(fileNm);
    bmp2.Width := 16;
    bmp2.Height := 16;
    bmp2.Canvas.StretchDraw(Rect(0, 0, 16, 16), bmp);
    DBgrid1.Canvas.Draw(Outrect.Left, Outrect.Top, bmp2);



    Outrect가 그리드 전체인듯합니다.

    CellRect(ACol, ARow)로 특정 셀을 잡아주시면 원하시는 위치가 될꺼구요.

    크기는 저런식으로 하시면 될듯하군요.

    해보진 않았지만...;

  • Profile
    김소연 2008.01.30 03:01
    CellRect는  TDbGrid에 없는 속성이군요ㅠㅠ+
    그리고 아래와 같이 수정하였더니 이미지 사이즈는 조절이 되는데요
    행의 크기는 조절이 안되서 이미지가 잘려서 표시되네요.
    이렇게 저렇게 해 보아도 잘 안되네요..
    도와주세요

    procedure TfmPopupMark.DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    var
      bmp,bmp2 : Tbitmap;
      outrect : Trect;
      bmpwidth : integer;
      FileNm: string;
    begin

      outrect := rect;
      bmp := Tbitmap.Create;

          FileNm := ExtractFilePath(Application.ExeName) + '\Set\Image\' + dbGrid1.Fields[1].AsString + '.Bmp';
          bmp.LoadFromFile(fileNm);
          bmpWidth := (rect.Bottom - Rect.Top) * 2;
          Outrect.Right := Rect.Left + bmpwidth;
          bmp.Width := 32;
          bmp.Height := 32;

          DBgrid1.Canvas.StretchDraw(outrect, bmp);

          Outrect := rect;
          Outrect.Left := Outrect.Left + bmpWidth;
    end;




  • Profile
    소울해커 2008.01.30 03:11
    Outrect := (ACol * DBGrid1.DefaultColWidth,
    ARow * DBGrid1.DefaultRowHeight,
    (ACol + 1) * DBGrid1.DefaultColWidth,
    (ARow + 1) * DBGrid1.DefaultRowHeight);

    다소 무식하지만 이런 방법도...;

  • Profile
    김소연 2008.01.30 03:25
    답변감사합니다.
    그런데 TdbGrid에는 DefaultRowHeight등의 속성이 없네요.ㅠㅠ+
    간단한듯하지만 잘 풀리지 않아서 답답해요.흑


  • Profile
    소울해커 2008.01.30 03:51
    Outrect := (ACol * TDrawGrid(DBGrid1).DefaultColWidth,
    ARow * TDrawGrid(DBGrid1).DefaultRowHeight,
    (ACol + 1) * TDrawGrid(DBGrid1).DefaultColWidth,
    (ARow + 1) * TDrawGrid(DBGrid1).DefaultRowHeight);

    후웁... 타입캐스팅을 이렇게 해버려도 어차피 같은 종족(?)이라 먹힐 겁니다.

    그래도 안되시면 StringGrid로 바꿔보심은 어떠실런지...;


    • 김소연
    • 2008.02.02 13:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.02.12 05:31
      오로지 영어나 숫자만 입력 받고 싶으시다면 IMEMODE를 imAlpha로 해보세요. 그래도 안 먹으면 KeyP...
    • 김범진
    • 2008.02.01 18:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.02.02 07:43
      전문가는 아니지만 저 같은 경우는 따로 모아둡니다. 폼없이 유니트만 하나 만들어서 전체적으로 공통으...
    • 김범진
      2008.02.02 21:48
      올려 주신 글은 잘 읽었읍니다. 고맙습니다. 코딩에 도움이 될 거 같습니다. 그럼 이만.
    • 이정욱
      2008.02.01 18:34
      제데로 받아오신것 같습니다.. <Form name="Tax" method="post" action="./refer_saupja_caution.asp"&...
    • 초봉델파이어
      2008.02.02 19:14
      빠른 답변 감사드립니다.. 다시 질문을 드렸었는데 ... 인터넷을 검색해서 웹브라우저로 처리했네요....
    • 이정욱
      2008.02.06 04:29
      자바스크립트 처리 엔진을 만드시는것보다는... 아마 웹브라우져를 사용하시는게 편하실것 같습니다. 다만...
    • 김태열
    • 2008.02.01 05:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정경철
      2008.02.01 19:11
      zeosDBconnect.Hostname := ''; zeosDBconnect.User     := ''; zeosDBconnect.Da...
    • Lee
    • 2008.01.31 00:24
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 델델
    • 2008.01.31 00:15
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김소연
    • 2008.01.30 02:50
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.01.30 18:27
      1. TDrawGrid(DBGrid1).ScrollBars := ssNone; 2. TDrawGrid(DBGrid1).Options := TDrawGrid(DBGrid1).O...
    • 김소연
      2008.02.01 01:32
      소울해커님 답변감사해요^^;; 추가질문이 있어서요.. 2번의 경우요.. 전체필드의 옵션말고 각각의 칼럼별...
    • 소울해커
      2008.02.01 02:41
      후웁... 대한민국에 안 되는게 어디 있겠습니까... 만은... 효율성이 떨어지는 건 있기마련이죠. 기본 ...
    • 델델
    • 2008.01.29 20:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.01.29 23:46
      ComboBox1.Style := csDropDownList; 로 하시면 됩니다.
    • 머프
    • 2008.01.29 12:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.01.30 00:07
      폼이 종료되지 않도록 하실려는거라면 따로 전역 변수를 두시고 처리하시면되겟네요. public  ...
    • 머프
    • 2008.01.29 12:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 나는살아있다.
      2008.01.29 19:03
      NT에서는 안먹히는 것으로 알고 있습니다. Hooking으로 방향을 잡으시는게......
    • 김소연
    • 2008.01.29 03:28
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.01.30 01:53
      FileNm := ExtractFilePath(Application.ExeName) + '\Set\Image\' + dbGrid1.Fields[1].AsString + '.Bmp'...
    • 김소연
      2008.01.30 03:01
      CellRect는  TDbGrid에 없는 속성이군요ㅠㅠ+ 그리고 아래와 같이 수정하였더니 이미지 사이즈...
    • 소울해커
      2008.01.30 03:11
      Outrect := (ACol * DBGrid1.DefaultColWidth, ARow * DBGrid1.DefaultRowHeight, (ACol + 1) * DBGrid1....
    • 김소연
      2008.01.30 03:25
      답변감사합니다. 그런데 TdbGrid에는 DefaultRowHeight등의 속성이 없네요.ㅠㅠ+ 간단한듯하지만 잘 풀리...
    • 소울해커
      2008.01.30 03:51
      Outrect := (ACol * TDrawGrid(DBGrid1).DefaultColWidth, ARow * TDrawGrid(DBGrid1).DefaultRowHeight, ...
    • 남호성
    • 2008.01.28 22:58
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 황경수
    • 2008.01.28 20:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.01.30 00:03
      생뚱맞은 답변이 될줄 모르겠습니다. 1. 그리드 하나 올려놓으시고 그리드의 ScrollBar를 모두 없애세요...
    • 김영대
      2008.01.26 03:03
      제가 알기론 대부분의 외국 터미널에서 멀티바이트 처리를 안하는거루 알고있습니다. 그래서 당연히 ...
    • 존재의바다
      2008.01.28 07:44
      답변 감사합니다. 혹시 온누리의 김영대님이세요? SQT의 이채성입니다. 갑자기 terminal을 하나 개발...
    • 델사랑
    • 2008.01.25 00:53
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2008.01.26 01:29
      Tcp-ip에 대한 기본적인 내용입니다 인터넷은 주로 80번포트를 사용합니다. 그포트 막으면 인터넷도 당연...
    • 하늘 산
      2008.01.25 01:13
      안녕하세요. 포트가 막혀있는 DB포트가 막혀있는 경우에는 Delphi에서는 마이다스라는 기능이 있습니다 ...
    • 장성호
      2008.01.25 03:32
      Listview의 아이템 Caption에 내용이 안보이게 하려면? 1. Caption에 내용을 넣지 않는다. 2. ListVi...
    • 이진생
      2008.01.25 06:03
      답변 감사드립니다. 혹시 Caption의 위치는 변경가능하나요 ? 현재는 화면 우측상단에 있는데 이것을...