是否可以使TDBEdit上的TextHint属性起作用

时间:2018-10-22 20:39:54

标签: delphi data-aware

我注意到可以在代码中的TDBEdit上设置TextHint属性(在Object Inspector中不可见),但是它不会显示,是否有一种简单的方法可以完成这项工作?

1 个答案:

答案 0 :(得分:4)

以下设置在XE2中有效。在表单上放置一个TClientDataSetTDataSource和2个TDBEdit控件,并使该表单的OnCreate事件处理程序如下所示:

procedure TForm1.FormCreate(Sender: TObject);
begin
  DataSource1.DataSet := ClientDataSet1;
  DBEdit1.DataSource := DataSource1;
  DBEdit2.DataSource := DataSource1;

  ClientDataSet1.FieldDefs.Add('First', ftString, 20);
  ClientDataSet1.FieldDefs.Add('Last', ftString, 20);
  ClientDataSet1.CreateDataSet;
  ClientDataSet1.Open;

  DBEdit1.DataField := ClientDataSet1.Fields[0].FieldName;
  DBEdit1.TextHint := 'first name';
  DBEdit2.DataField := ClientDataSet1.Fields[1].FieldName;
  DBEdit2.TextHint := 'last name';

  ClientDataSet1.Insert;
end;

一个潜在的问题是TDBEdit是只读的。例如,从代码段中删除Insert()调用,所做的编辑将保持空白。这种行为与常规编辑类似,这是合理的-当编辑控件不允许进行编辑时,没有任何提示显示用户应输入的内容。