默認(rèn)情況下,dbGrid的列寬時(shí)按照數(shù)據(jù)庫(kù)字段的大小來調(diào)整的,如果我們一個(gè)字段中的數(shù)據(jù)表較少,那么看起來極不美觀,于是,我寫了一個(gè)函數(shù)來自動(dòng)調(diào)整dbGrid的列寬:
函數(shù)如下:
//使dbGrid的內(nèi)容自動(dòng)適應(yīng)他的寬度
PRocedure MakeDBGridColumnsAutoFixItsWidth(objDBGrid:TDBGrid);
var
  cc:integer;
  i,tmpLength:integer;
  objDataSet:TDataSet;
  aDgCLength:array of integer;
begin
  cc:=objDbGrid.Columns.Count-1;
  objDataSet:=objDbGrid.DataSource.DataSet;
  setlength(aDgCLength,cc+1);
  file://取標(biāo)題字段的長(zhǎng)度
  for i:=0 to  cc do
  begin
    aDgCLength[i]:= length(objDbGrid.Columns[i].Title.Caption);
  end;
  objDataSet.First;
  while not objDataSet.Eof do
  begin
    file://取列中每個(gè)字段的長(zhǎng)度
    for i:=0 to  cc do
    begin
      tmpLength:=length(objDataSet.Fields.Fields[i].AsString);
      if tmpLength>aDgCLength[i]
      then aDgCLength[i]:=tmpLength;
    end;
    objDataSet.Next;
  end;
  for i:=0 to  cc do
  begin
    objDbGrid.Columns[i].Width:=aDgCLength[i]*7;
  end;
end;
簡(jiǎn)單的測(cè)試了一下,效率還可以接受!(www.sinoprise.com)
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注