当前位置: 首页> 文旅> 酒店 > 回答网友的一个DBGrid的问题

回答网友的一个DBGrid的问题

时间:2025/7/11 14:24:13来源:https://blog.csdn.net/withcsharp2/article/details/139803472 浏览次数:0次

起因

网友在QQ群里问Text字段的显示问题。

俺回答:百度了一下 方法有 很多很多 。然后给他百度了6种方案。然后告诉他找个顺眼的用。

可是,对方感觉都顺眼。俺就新写了一个 。

代码

创建测试数据

begin
  ADODataSet1.DisableControls;
  colcnt:=5;
  rowcnt:=10;
  for i:=1 to colcnt do
    ADODataSet1.FieldDefs.Add('TEXT'+inttostr(i),ftMemo);
  ADODataSet1.CreateDataSet();
  for  j:=1 to    rowcnt do
  begin
    ADODataSet1.Append();
    for i:=1 to colcnt do
      ADODataSet1.Fieldbyname('TEXT'+inttostr(i)).AsString:='啥啥';
    ADODataSet1.Post();
  end;
  ADODataSet1.First;
  for i:=1 to colcnt do
   ADODataSet1.Fieldbyname('TEXT'+inttostr(i)).OnGetText:=  OnGetText;
  ADODataSet1.EnableControls;
end;

并设置OnGetText事件

   ADODataSet1.Fieldbyname('TEXT'+inttostr(i)).OnGetText:=  OnGetText;

OnGetText事件

procedure TForm1.OnGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  Text:=Sender.AsString;
  DisplayText:=true;
end;

全部代码

unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, Grids, DBGrids, DB, ADODB;typeTForm1 = class(TForm)DataSource1: TDataSource;ADODataSet1: TADODataSet;DBGrid1: TDBGrid;procedure FormCreate(Sender: TObject);privateprocedure OnGetText(Sender: TField; var Text: string;DisplayText: Boolean) ;public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
varcolcnt,i:integer;rowcnt,j:integer;beginADODataSet1.DisableControls;colcnt:=5;rowcnt:=10;for i:=1 to colcnt doADODataSet1.FieldDefs.Add('TEXT'+inttostr(i),ftMemo);ADODataSet1.CreateDataSet();for  j:=1 to    rowcnt dobeginADODataSet1.Append();for i:=1 to colcnt doADODataSet1.Fieldbyname('TEXT'+inttostr(i)).AsString:='啥啥';ADODataSet1.Post();end;ADODataSet1.First;for i:=1 to colcnt doADODataSet1.Fieldbyname('TEXT'+inttostr(i)).OnGetText:=  OnGetText;ADODataSet1.EnableControls;
end;procedure TForm1.OnGetText(Sender: TField; var Text: string;DisplayText: Boolean);
beginText:=Sender.AsString;DisplayText:=true;
end;end.

关键字:回答网友的一个DBGrid的问题

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: