dbgrid格式化显示逻辑字段

befree 2002-04-18 01:33:48
可以用“是非”或“是/不是”等显示
...全文
30 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
befree 2002-04-18
  • 打赏
  • 举报
回复
逻辑类还是要用的
程序设计规范
麻烦也没办法了
谢谢
王集鹄 2002-04-18
  • 打赏
  • 举报
回复
//....
procedure BooleanFieldGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
public

//....

procedure TForm1.Table1AfterOpen(DataSet: TDataSet);
begin
DataSet.FieldByName('field1').OnGetText := BooleanFieldGetText;
end;

procedure TForm1.BooleanFieldGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
const
cBoolStr: array[Boolean] of string = ('否', '是');
begin
Text := cBoolStr[Sender.AsBoolean];
end;
//....

//不过我还是建议你直接不要用逻辑类的字段,直接用字符类型多方便
//没有必要减少存储空间来增加自己的麻烦
szkxy 2002-04-18
  • 打赏
  • 举报
回复
1.可以在先设置你所用AdoTable/AdoQuery的Field:
打开Fields Editor窗口,再选"New Field",设置Name为"status",Type选"String",Size输入可以容纳"是/不是"的宽度(8).Field type 选择"Calculate",按确定.
2.在AdoTable/AdoQuery的"OnCaclFields"事件中输入以一以下代码:
if Dataset.Fieldbyname('yes').asboolean then
Dataset['status']:='是'
else
Dataset['status']:='不是';
3.为Dbgrid添加AdoTable/AdoQuery的"status"字段
dreamfan 2002-04-18
  • 打赏
  • 举报
回复
那我就不会了,对不起了
befree 2002-04-18
  • 打赏
  • 举报
回复
我不用TField的
不在设计时定义字段
befree 2002-04-18
  • 打赏
  • 举报
回复
dreamfan(dreamfan)
写出来...
dreamfan 2002-04-18
  • 打赏
  • 举报
回复
可以啊 写sql就能实现啊
eagle123 2002-04-18
  • 打赏
  • 举报
回复
当值为true时displayvalue中的值将被显示
Snakeguo 2002-04-18
  • 打赏
  • 举报
回复
TField.DisplayValue

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧