可以在oncalcfields 事件中写!
if query字段1.asinteger=0 then
    query字段.Value:='是';
  if query字段1.asinteger=1 then
    query字段.Value:='否';

解决方案 »

  1.   

    SELECT DECODE(field1,0,'是',1,'否') FROM table1 
    不知道你用的是什么数据库,是否支持DECODE
      

  2.   

    如果你的表中外键不多的话,你可以用SQL进行多表查询啊
    如果多的话:把QUERY 的各个字段加到QUERY中去,然后在需要翻译的字段的
    ONGETTEXT事件中写:
    if  sender.asstring='1' then
     text:='是'
    else
    ......
      

  3.   

    我用的是SQL——SERver,怎样保存记录?  需要转换吗?
      

  4.   

    告诉你一个最偷懒,最简单的方法:
    把dbconsts.pas Copy到你的目录,修改其中的
    sTextTrue='True'为sTextTrue='是';
    sTextFalse='False'为sTextFalse='否';然后关闭Delphi,重新Build你的Project即可。
      

  5.   

    如你用的是table(query也是一样)
    1、双击窗体中的Table1,先关闭table1,打开字段编辑器Fields Editor;
    2、在Fields Editor窗口中,单击鼠标右键,选择New Fields菜单项
    3、Delphi显示New Fields对话框。选择Field Type列表框中的Currency 项, 并在Field Name文体框中输入Fff , 这样我们自定义了一个 CurrencyField 类型的字段Fff。Delphi会自动地填入相应的字段对象名,其缺省值为Table1fff;
    4、单击Ok按钮,关闭New Field对话框。当Fields Editor 窗口重新出现时, 注意fff已经出现在Fields列表框中
    5、在table1的OnCalcFields事件中写一句
         if table1.fieldbyname('yourfield').asboolean then
            table1fff.AsString:='是' else table1fff.AsString:='否';
      

  6.   

    加入判断语句
    if 字段1.asinteger=0 then
        字段.Value:='是';
    elseif query字段1.asinteger=1 then
        query字段.Value:='否';
      

  7.   

    用case语句
    既然你用Query不用Case就浪费了
    Select A_Chinese=Case A when 0 then '是' when 1 then '否' end
    from 
    你的表名
      

  8.   

    procedure TForm1.Table1AfterOpen(DataSet: TDataSet);
    begin
     TNumericField(DataSet.FieldByName('SIZE')).DisplayFormat := '是;是;否';
    end;嘻嘻嘻 这招比较酷,完全自创 嘻嘻嘻嘻
      

  9.   

    在字段的OnGetText和OnSetText事件中写. 也许比使用计算字段要好一些.