注册 登录
编程论坛 Delphi论坛

对于设置改变dbgrid 表中的字段名称显示为汉字有什么方法

风萧寒 发布于 2008-10-13 09:12, 4136 次点击
比如数据库的表中是sid 在显示为 编号
sname 姓名
6 回复
#2
ruanjian21102008-10-13 11:20
Function TForm1.DBGridHeader1(model:integer;dbg:TDBGrid):boolean;  //此函数用来将dbgrid 表中的字段名称显示为汉字
var
  i:integer;
  titlestr:string;
begin
  for i:=0 to dbg.Columns.Count-1 do begin
    if(dbg.Columns[i].Width>0) then begin
      titlestr:=uppercase(dbg.Columns[i].Title.Caption);
      if   (titlestr='SID')   THEN dbg.Columns[i].Title.Caption:='编号'
      else if(titlestr='SID1')  THEN dbg.Columns[i].Title.Caption:='编号1'
      else if(titlestr='SID2')         THEN dbg.Columns[i].Title.Caption:='编号2'
      else if(titlestr='SID3')     THEN dbg.Columns[i].Title.Caption:='编号3'
      else if(titlestr='') THEN  dbg.Columns[i].Title.Caption:=''
    end;
  end;
end;
在打开或查询数据库之后加上 Form1.DBGridHeader1(1,DBGrid1);就可以改成中文了
//注意:数据库字段名全部大写..例如:titlestr='SID'

[[it] 本帖最后由 ruanjian2110 于 2008-10-13 11:28 编辑 [/it]]
#3
风萧寒2008-10-13 13:15
谢谢版主 我是刚学习delphi的 很多地方不懂
 但是在调试的时候是不是函数的返回值不应该是boolean?怎么总显示错啊
而且dbg总说未定义 他不是DBGrid的简写吗?还要定义?
#4
ruanjian21102008-10-13 13:56
dbg是DBGrid的简写.
还要在public下面加上一句:
 Function DBGridHeader1(model:integer;dbg:TDBGrid):boolean;
在Uses引用下面加上DBGrids,这样就OK了。

[[it] 本帖最后由 ruanjian2110 于 2008-10-14 09:48 编辑 [/it]]
#5
gdzhan2008-10-14 10:15
或者用SQL的语句也可以
sql.add('select id as 编号 from table');
不过这种方法,在用数据集字段赋值的时候要小心,,
FieldByName('编号').asstring = text;
而不是FieldByName('id').AsSTRING = text;
,,
#6
ruanjian21102008-10-14 13:33
我个人认为还是写个函数比较好,这样在调用的时候比较方便。。
#7
gdzhan2008-10-14 15:11
我也觉得是用过程来初始化好点,
不用写那么长的SQL语句,,,用我上面的方法,,有的时候复杂了,
赋值的时候还要很细心字段方面,,
楼主还是用上版主的方法吧
1