程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 使DBGrid的列自動調整到何時大小

使DBGrid的列自動調整到何時大小

編輯:Delphi

  默認情況下,dbGrid的列寬時按照數據庫字段的大小來調整的,如果我們一個字段中的數據表較少,那麼看起來極不美觀,於是,我寫了一個函數來自動調整dbGrid的列寬:

  函數如下:

  //使dbGrid的內容自動適應他的寬度
  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://取標題字段的長度
    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://取列中每個字段的長度
      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;

  簡單的測試了一下,效率還可以接受

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved