![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Если DBEdit имеет нулевое значение, то как подставить в негоТекст [D7, Access]
Zif © (2004-10-21 15:32:00)Если DBEdit имеет нулевое значение, то как подставить в него мой текст? Откуда узнать что значение Caption пустое?
begin
if DBText5.Field.AsString:='' //что должно тут быть?
then begin
DBText5.Caption:='не выбрано'
end;
Zif (2004-10-21 18:12:00) [1]спасибо за совет, я вообще пока "новичок", самоучка, в основном занимаюсь сейчас пока созданием дизайна своей программы, поэтому каждый раз - новые открытия...
msguns (2004-10-21 17:55:00) [2]>Zif © (21.10.04 17:13) [8]
>if FormMain.DBTextType.Field.IsNull then
Старайся избегать в методах классов ссылок на экземплярыдругих классов. Эта привычка приведет к большим неприятностям в дальнейшем, когда, например, будешь использовать не созданные в дизайне, а динамически создаваемые в ран-тайме объекты (в т.ч. формы, датамодули и т.п.)
Zif (2004-10-21 17:30:00) [3]согласен, ступил... все получилось.
procedure TDataModule1.ADODataSetMainType1GetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
if Sender.IsNull then
Text:='не выбрано'
else
Text:=Sender.AsString
end;
сделал для динамического поля
Все большое спасибо.
Johnmen (2004-10-21 17:14:00) [4]>читал 10 раз,
:)))
Теперь попробуй тупо скопировать...
Zif (2004-10-21 17:13:00) [5]читал 10 раз, все равно не могу понял в чем причина...
может так:
if FormMain.DBTextType.Field.IsNull then
FormMain.DBTextType.Caption:='не выбрано'
else
FormMain.DBTextType.Caption:=ADODataSetMainType.AsString;
Vlad (2004-10-21 16:55:00) [6]
> Zif © (21.10.04 16:50) [6]
ты [2] читал?
зы: DisplayText:=true;
Zif (2004-10-21 16:50:00) [7]Вот что у меня получилось:
procedure TDataModule1.ADODataSetMainTypeGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
if ADODataSetMainType.IsNull then
FormMain.DBTextType.Caption:='не выбрано'
else
FormMain.DBTextType.Caption:=ADODataSetMainType.AsString;
end;
текст 'не выбрано' не отображается... что опять не так?
PS. я использую для отображения динамическое поле ADODataSetMainType1 типа Lookup.
asp (2004-10-21 16:13:00) [8]Это событие, которое тебе нужно обработать.
Для этого кликаешь на Table два раза, заходишь в Fields editor, кликаешь в нем правой кнопкой мыши и выбираешь Add all fields. Затем выбираешь нужное поле, переключаешься на Object inspector, закладка Events, событие OnGetText, двойной клик мыши и вводи код.
Vlad (2004-10-21 16:10:00) [9]
> где нажать, чтоб получить эту строку?
в Fields Editor'е
Zif (2004-10-21 16:03:00) [10]спасибо за быстрый ответ!
procedure Field.OnGetText(Sender: TField; var Text: String; DisplayText: Boolean); //где нажать, чтоб получить эту строку?
ведь неоходимо чтобы он сам автоматически обновлялся...
Johnmen (2004-10-21 15:39:00) [11]
begin
if DBText5.Field.IsNull
then begin
DBText5.Field.AsString:='не выбрано'
end;
asp (2004-10-21 15:39:00) [12]Может:
procedure Field.OnGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
if Sender.IsNull then
Text:= 'не выбрано'
else
Text:= Sender.AsString
end;