Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: CL | DM;

Вниз

Если DBEdit имеет нулевое значение, то как подставить в негоТекст   Найти похожие ветки 

 
Zif ©   (2004-10-21 15:32) [0]

Если DBEdit имеет нулевое значение, то как подставить в него мой текст? Откуда узнать что значение Caption пустое?


begin
 if DBText5.Field.AsString:="" //что должно тут быть?
 then  begin
 DBText5.Caption:="не выбрано"
end;


 
Johnmen ©   (2004-10-21 15:39) [1]

begin
if DBText5.Field.IsNull
then  begin
DBText5.Field.AsString:="не выбрано"
end;


 
asp ©   (2004-10-21 15:39) [2]

Может:
procedure Field.OnGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
if Sender.IsNull then
 Text:= "не выбрано"
 else
 Text:= Sender.AsString
end;


 
Zif ©   (2004-10-21 16:03) [3]

спасибо за быстрый ответ!

procedure Field.OnGetText(Sender: TField; var Text: String; DisplayText: Boolean); //где нажать, чтоб получить эту строку?
ведь неоходимо чтобы он сам автоматически обновлялся...


 
Vlad ©   (2004-10-21 16:10) [4]


> где нажать, чтоб получить эту строку?

в Fields Editor"е


 
asp ©   (2004-10-21 16:13) [5]

Это событие, которое тебе нужно обработать.
Для этого кликаешь на Table два раза, заходишь в Fields editor, кликаешь в нем правой кнопкой мыши и выбираешь Add all fields. Затем выбираешь нужное поле, переключаешься на Object inspector, закладка Events, событие OnGetText, двойной клик мыши и вводи код.


 
Zif ©   (2004-10-21 16:50) [6]

Вот что у меня получилось:

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.


 
Vlad ©   (2004-10-21 16:55) [7]


> Zif ©   (21.10.04 16:50) [6]

ты [2] читал?

зы: DisplayText:=true;


 
Zif ©   (2004-10-21 17:13) [8]

читал 10 раз, все равно не могу понял в чем причина...

может так:

if FormMain.DBTextType.Field.IsNull then
FormMain.DBTextType.Caption:="не выбрано"
else
FormMain.DBTextType.Caption:=ADODataSetMainType.AsString;


 
Johnmen ©   (2004-10-21 17:14) [9]

>читал 10 раз,

:)))
Теперь попробуй тупо скопировать...


 
Zif ©   (2004-10-21 17:30) [10]

согласен, ступил... все получилось.

procedure TDataModule1.ADODataSetMainType1GetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
 if Sender.IsNull then
 Text:="не выбрано"
 else
 Text:=Sender.AsString
end;


сделал для динамического поля
Все большое спасибо.


 
msguns ©   (2004-10-21 17:55) [11]

>Zif ©   (21.10.04 17:13) [8]
>if FormMain.DBTextType.Field.IsNull then

Старайся избегать в методах классов ссылок на экземпляры других классов. Эта привычка приведет к большим неприятностям в дальнейшем, когда, например, будешь использовать не созданные в дизайне, а динамически создаваемые в ран-тайме объекты (в т.ч. формы, датамодули и т.п.)


 
Zif ©   (2004-10-21 18:12) [12]

спасибо за совет, я вообще пока "новичок", самоучка, в основном занимаюсь сейчас пока созданием дизайна своей программы, поэтому каждый раз - новые открытия...



Страницы: 1 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.024 c
4-1097318593
TeNY
2004-10-09 14:43
2004.11.21
Нажатие Enter?


1-1099584984
uses-mind.dll
2004-11-04 19:16
2004.11.21
уничтожение динамически созданных объектов


1-1099554397
alexa
2004-11-04 10:46
2004.11.21
Memo и Label


1-1099260966
Кто---то
2004-11-01 01:16
2004.11.21
Как преобразовать картинку в шрифт ?


1-1098723648
фантазер
2004-10-25 21:00
2004.11.21
TFileFormatsList