1

我注意到可以在代码中的 TDBEdit 上设置 TextHint 属性(它在对象检查器中不可见),但是它不显示,有没有一种简单的方法可以使它工作?

4

1 回答 1

4

以下设置适用于 XE2。在 Form 上放置TClientDataSetTDataSource和 2TDBEdit控件,并使 Form 的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;

一个潜在的问题是TDBEdits 是只读的。例如,Insert()从片段中删除调用,编辑将保持为空。这种行为与常规编辑类似,这是合理的——当编辑控件不允许编辑时,显示用户应该输入什么的提示是没有意义的。

于 2018-10-22T23:39:29.607 回答