Можно ли заставить свойство TextHint в TDBEdit работать?
Я заметил, что можно установить свойство TextHint для TDBEdit в коде (оно не отображается в Инспекторе объектов), однако оно не отображается, есть ли простой способ заставить это работать?
1 ответ
Следующая настройка работает в XE2. Оставьте TClientDataSet
, TDataSource
и 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()
позвоните из фрагмента, и изменения останутся пустыми. Это поведение аналогично обычному редактированию, что является разумным - когда элемент управления редактирования не позволяет редактировать, нет смысла показывать подсказку о том, что пользователь должен ввести.