Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Если 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо