Q&A

  • <질문>DB그리드의 조절
DB그리드의 각각의셀을 출력되는 문자의 길이에 따라 변하게 하고 싶은데 어떻게 않될까여? 궁금합니다. 제발 ~ 프리즈

3  COMMENTS
  • Profile
    최석기 2000.10.07 04:06
    coco wrote:

    > DB그리드의 각각의셀을 출력되는 문자의 길이에 따라 변하게 하고 싶은데 어떻게 않될까여? 궁금합니다. 제발 ~ 프리즈



    안녕하세요..

    델파이세상(http://www.freechal.com/delphiworld)에 최석기입니다..



    이건 제가 만들어서 사용하는 함수거든요.,.



    procedure AutoSizeDBGridColumn(Grid : TDBGrid; column : integer);

    var

    temp : integer;

    max : integer;

    begin

    max := 0;

    Grid.DataSource.DataSet.DisableControls;

    Grid.DataSource.DataSet.First;

    temp := Grid.Canvas.TextWidth(grid.Columns[column].Title.Caption); //DBGrid의 타이틀 길이.

    max := temp;

    try

    while not Grid.DataSource.DataSet.Eof do begin

    // Grid Canvas를 기준으로한 지정한 Column의 각 row의 width중

    // 최대값을 구하여 column의 width로 결정한다

    temp := Grid.Canvas.TextWidth(grid.Columns[column].Field.DisplayText); //해당 셀의 글자 너비를 구함

    if temp > max then

    max := temp;

    Grid.DataSource.DataSet.Next;

    end;

    Grid.Columns[column].Width := max + 1 + 10;

    finally

    Grid.DataSource.DataSet.First;

    Grid.DataSource.DataSet.EnableControls;

    end;

    end;





    사용예)

    for i := 0 to DBGrid1.Columns.Count - 1 do

    AutoSizeDBGridColumn(DBGrid1,i);

  • Profile
    어린왕자 2000.10.07 02:22
    coco wrote:

    > DB그리드의 각각의셀을 출력되는 문자의 길이에 따라 변하게 하고 싶은데 어떻게 않될까여? 궁금합니다. 제발 ~ 프리즈



    안녕하세요..영원한 델초보 어린왕자입니다..

    저가 옛날에 했던 기억으로는..

    값의 Length를 읽어서 아래레코드의 Length값과 비교를 해서 한거 같은데요..

    쫌..머리좀 써야할꺼 같죠?..

    근데 문제는 Data가 많으면 속도가 무지 느리다는 거죠..



    요새는 전..리스트뷰를 쓰고 있어요..

    DB그리드보다 다루기가 편한거 같아요..^^~ 나만의 생각인감?

    소트두 그냥 되구..



    그럼 즐거운 코딩 시간 가지세요..



  • Profile
    coco 2000.10.07 02:27
    좀더 자세하게좀 알려주면 안될까요?

    글구 리스트뷰에 대해서도요!....

    어린왕자 wrote:

    > coco wrote:

    > > DB그리드의 각각의셀을 출력되는 문자의 길이에 따라 변하게 하고 싶은데 어떻게 않될까여? 궁금합니다. 제발 ~ 프리즈

    >

    > 안녕하세요..영원한 델초보 어린왕자입니다..

    > 저가 옛날에 했던 기억으로는..

    > 값의 Length를 읽어서 아래레코드의 Length값과 비교를 해서 한거 같은데요..

    > 쫌..머리좀 써야할꺼 같죠?..

    > 근데 문제는 Data가 많으면 속도가 무지 느리다는 거죠..

    >

    > 요새는 전..리스트뷰를 쓰고 있어요..

    > DB그리드보다 다루기가 편한거 같아요..^^~ 나만의 생각인감?

    > 소트두 그냥 되구..

    >

    > 그럼 즐거운 코딩 시간 가지세요..

    >