{"id":1450,"date":"2011-01-07T21:18:00","date_gmt":"2011-01-07T01:18:00","guid":{"rendered":""},"modified":"2013-11-17T16:25:46","modified_gmt":"2013-11-17T08:25:46","slug":"dbgrid%e5%88%97%e5%ae%bd%e8%87%aa%e9%80%82%e5%ba%94%e5%ae%bd%e5%ba%a6","status":"publish","type":"post","link":"https:\/\/kyle.ai\/blog\/1450.html","title":{"rendered":"DBGrid\u5217\u5bbd\u81ea\u9002\u5e94\u5bbd\u5ea6"},"content":{"rendered":"<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\n (*\/\/\r\n  \u6807\u9898:\u6570\u636e\u7f51\u683c\u81ea\u52a8\u9002\u5e94\u5bbd\u5ea6\r\n  \u8bf4\u660e:\u4f7f\u7528DBGrid\u4e0d\u53ef\u4e0d\u770b\r\n  \u8bbe\u8ba1:Zswang\r\n  \u65e5\u671f:2002-03-04\r\n  \u652f\u6301:wjhu111@21cn.com\r\n  \/\/*)\r\n\r\n  \/\/\/\/\/\/\/Begin   Source\r\n  uses\r\n      Math;\r\n\r\n  function   DBGridRecordSize(mColumn:   TColumn):   Boolean;\r\n  {   \u8fd4\u56de\u8bb0\u5f55\u6570\u636e\u7f51\u683c\u5217\u663e\u793a\u6700\u5927\u5bbd\u5ea6\u662f\u5426\u6210\u529f   }\r\n  begin\r\n      Result   :=   False;\r\n      if   not   Assigned(mColumn.Field)   then   Exit;\r\n      mColumn.Field.Tag   :=   Max(mColumn.Field.Tag,\r\n          TDBGrid(mColumn.Grid).Canvas.TextWidth(mColumn.Field.DisplayText));\r\n      Result   :=   True;\r\n  end;   {   DBGridRecordSize   }\r\n\r\n  function   DBGridAutoSize(mDBGrid:   TDBGrid;   mOffset:   Integer   =   5):   Boolean;\r\n  {   \u8fd4\u56de\u6570\u636e\u7f51\u683c\u81ea\u52a8\u9002\u5e94\u5bbd\u5ea6\u662f\u5426\u6210\u529f   }\r\n  var\r\n      I:   Integer;\r\n  begin\r\n      Result   :=   False;\r\n      if   not   Assigned(mDBGrid)   then   Exit;\r\n      if   not   Assigned(mDBGrid.DataSource)   then   Exit;\r\n      if   not   Assigned(mDBGrid.DataSource.DataSet)   then   Exit;\r\n      if   not   mDBGrid.DataSource.DataSet.Active   then   Exit;\r\n      for   I   :=   0   to   mDBGrid.Columns.Count   -   1   do   begin\r\n          if   not   mDBGrid.Columns&#x5B;I].Visible   then   Continue;\r\n          if   Assigned(mDBGrid.Columns&#x5B;I].Field)   then\r\n              mDBGrid.Columns&#x5B;I].Width   :=   Max(mDBGrid.Columns&#x5B;I].Field.Tag,\r\n                  mDBGrid.Canvas.TextWidth(mDBGrid.Columns&#x5B;I].Title.Caption))   +   mOffset\r\n          else   mDBGrid.Columns&#x5B;I].Width   :=\r\n              mDBGrid.Canvas.TextWidth(mDBGrid.Columns&#x5B;I].Title.Caption)   +   mOffset;\r\n          mDBGrid.Refresh;\r\n      end;\r\n      Result   :=   True;\r\n  end;   {   DBGridAutoSize   }\r\n  \/\/\/\/\/\/\/End   Source\r\n\r\n  \/\/\/\/\/\/\/Begin   Demo\r\n  procedure   TForm1.DBGrid1DrawColumnCell(Sender:   TObject;   const   Rect:   TRect;\r\n      DataCol:   Integer;   Column:   TColumn;   State:   TGridDrawState);\r\n  begin\r\n      DBGridRecordSize(Column);\r\n  end;\r\n\r\n  procedure   TForm1.Button2Click(Sender:   TObject);\r\n  begin\r\n      DBGridAutoSize(DBGrid1);\r\n  end;\r\n  \/\/\/\/\/\/\/End   Demo\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>(*\/\/ \u6807\u9898:\u6570\u636e\u7f51\u683c\u81ea\u52a8\u9002\u5e94\u5bbd\u5ea6 \u8bf4\u660e:\u4f7f\u7528DBGrid\u4e0d\u53ef\u4e0d\u770b \u8bbe\u8ba1:Zswang \u65e5\u671f:2002-03 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-1450","post","type-post","status-publish","format-standard","hentry","category-code_related"],"_links":{"self":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/1450","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/comments?post=1450"}],"version-history":[{"count":1,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/1450\/revisions"}],"predecessor-version":[{"id":4686,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/1450\/revisions\/4686"}],"wp:attachment":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/media?parent=1450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/categories?post=1450"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/tags?post=1450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}