델파이5를 이용하여 코딩하고 있습니다.
일자별로 쿼리가 바껴서 컬럼의 갯수가 달라집니다.
DBgridEh 와 Datasource, 그리고 데이터셋을 연결하여
qry.Open 시에 그리드에 내용을 뿌려주도록 코딩했습니다.
실행하면.. DBGrid에 해당컬럼들이 모두 들어오는데... 각 컬럼들간의 간격이
제각기 나옵니다.
여기저기 검색해봐도.. 원하는 답을 못찾아서 이렇게 올립니다..
아시는분 답변좀 부탁드립니다.
============ 이 하 코드부분 =====================
qryExercise.Close;
qryExercise.SQL.Clear;
qryExercise.SQL.Text := GetDataQuery;
qryExercise.ParamByName('BOOK_DATE').AsString := pBookDate;
qryExercise.Open;
for i := 0 to qryExercise.FieldCount -1 do
begin
DBGridEh1.Columns[i].Width := 150; // 적용안됨.. 이유를 모르겠음.. ??
end;
Query에서 가져오는 Field에 DisplayWidth 속성이 있으며 이를 그리드 그릴때 컬럼 길이로
사용하게 됩니다 이것을 가로채서 조정하세요...
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
var
i: integer;
begin
with Query1 do begin
for I := 0 to Fields.Count - 1 do
Fields[i].DisplayWidth := 20; //숫자는 문자수 즉 테이블 작성시 만든 필드 길이...
next;
end;
꼭 이렇게 해야만 할까요??
좋은 하루 되세요!