计算机二级:Delphi数据网格自动适应宽度计算机二级考试
文章作者 100test 发表时间 2009:05:07 18:06:35
来源 100Test.Com百考试题网
2009年下半年全国计算机等级考试你准备好了没?考计算机等级考试的朋友,2009年下半年全国计算机等级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库
(*//
标题:数据网格自动适应宽度
说明:使用DBGrid不可不看
设计:Zswang
日期:2002-03-04
支持:[email protected]
//*)
///////Begin Source
uses
Math.
function DBGridRecordSize(mColumn: TColumn): Boolean.
{ 返回记录数据网格列显示最大宽度是否成功 }
begin
Result := False.
if not Assigned(mColumn.Field) then Exit.
mColumn.Field.Tag := Max(mColumn.Field.Tag,
TDBGrid(mColumn.Grid).Canvas.TextWidth(mColumn.Field.DisplayText)).
Result := True.
end. { DBGridRecordSize }
function DBGridAutoSize(mDBGrid: TDBGrid. mOffset: Integer = 5): Boolean.
{ 返回数据网格自动适应宽度是否成功 }
var
I: Integer.
begin
Result := False.
if not Assigned(mDBGrid) then Exit.
if not Assigned(mDBGrid.DataSource) then Exit.
if not Assigned(mDBGrid.DataSource.DataSet) then Exit.
if not mDBGrid.DataSource.DataSet.Active then Exit.
for I := 0 to mDBGrid.Columns.Count - 1 do begin
if not mDBGrid.Columns[I].Visible then Continue.
if Assigned(mDBGrid.Columns[I].Field) then
mDBGrid.Columns[I].Width := Max(mDBGrid.Columns[I].Field.Tag,
mDBGrid.Canvas.TextWidth(mDBGrid.Columns[I].Title.Caption)) mOffset
else mDBGrid.Columns[I].Width :=
mDBGrid.Canvas.TextWidth(mDBGrid.Columns[I].Title.Caption) mOffset.
mDBGrid.Refresh.
end.
Result := True.
end. { DBGridAutoSize }
///////End Source
///////Begin Demo
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject. const Rect: TRect.
DataCol: Integer. Column: TColumn. State: TGridDrawState).
begin
DBGridRecordSize(Column).
end.
procedure TForm1.Button1Click(Sender: TObject).
begin
DBGridAutoSize(DBGrid1).
end.
特别推荐:
2009年9月全国计算机等级考试时间及科目预告