Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];

Вниз

DBLookupComboBoxEh   Найти похожие ветки 

 
alex_tonk   (2007-08-07 18:51) [0]

Доброго дня всем мастерам своего дела.
Помогите пожалуйста своим советом.
Проблема в следующем:
Есть DBLookupComboBoxEh с подключенным набором данных. Нужно чтобы в нем отобразился первый или второй (главное чтобы комбик небыл пустым, должно быть хоть чтото) элемент из списка. Пробовал в наборе данных сделать First - не помогает...

Что я делал:
procedure tform1.FormCreate(Sender: TObject);
begin
form1.Activate;
fdsVladKass.Close;
//vlk_name.ListSource.DataSet.First;
//vlk_name.KeyValue := vlk_name.KeyField.Value;
//vlk_name.KeyValue := fdsVladKass.FieldByName("VLK_ID").AsString;
//vlk_name.KeyValue := vlk_name.ListSource.DataSet.FieldByName(vlk_name.KeyField).Value;
fdsVladKass.Open;
end;

Никакая из закоментеных строк не помогает...
Жду вашей помощи....


 
Desdechado ©   (2007-08-07 20:26) [1]

Чтобы в лукапе что-то показано было, нужно чтобы поле датасета, для которого осуществляется подмена, все-таки что-то корректное находилось, т.е. для чего есть значения в подстановочном датасете.


 
alex_tonk   (2007-08-08 10:36) [2]


> Чтобы в лукапе что-то показано было, нужно чтобы поле датасета,
>  для которого осуществляется подмена, все-таки что-то корректное
> находилось, т.е. для чего есть значения в подстановочном
> датасете.


Комбик при запуске проги не пустой (имеет ряд значений), и в дата сете все прописано...по этому комбику происходит фильтрация данных, все работает...все что мне нужно это чтобы по умолчанию в нем было какоето значение.


 
Bless ©   (2007-08-08 11:19) [3]


> alex_tonk   (08.08.07 10:36) [2]
>
>
> > Чтобы в лукапе что-то показано было, нужно чтобы поле
> датасета,
> >  для которого осуществляется подмена, все-таки что-то
> корректное
> > находилось, т.е. для чего есть значения в подстановочном
>
> > датасете.
>
>
> Комбик при запуске проги не пустой


Ты сам себе противоречишь.
procedure tform1.FormCreate(Sender: TObject);
begin
form1.Activate;
fdsVladKass.Close;
//vlk_name.ListSource.DataSet.First;
//vlk_name.KeyValue := vlk_name.KeyField.Value;
//vlk_name.KeyValue := fdsVladKass.FieldByName("VLK_ID").AsString;
//vlk_name.KeyValue := vlk_name.ListSource.DataSet.FieldByName(vlk_name.KeyField).Value;
fdsVladKass.Open;
end;

То есть к моменту, когда ты чего-то там присваиваешь vlk_name.KeyValue датасет как раз закрыт. А открывается он лишь после этого.


 
alex_tonk   (2007-08-08 13:59) [4]

Пробовал уже и так и сяк...
procedure tform1.FormCreate(Sender: TObject);
begin
form1.Activate;
fdsVladKass.Open;
vlk_name.KeyValue := vlk_name.ListSource.DataSet.FieldByName(vlk_name.KeyField).Value;
end;

не выходит.......:(.


 
alex_tonk   (2007-08-08 14:13) [5]

>Ты сам себе противоречишь.

При запуске приложения в комбике пусто...если на него щелкнуть вываливается список полей...мне нужно чтоб при запуске програмы он небыл пустой, либо выбиралось одно из вываливаемых значений, либо чтото другое, типа " * ".


 
Bless ©   (2007-08-08 14:27) [6]


> alex_tonk   (08.08.07 13:59) [4]
>
> Пробовал уже и так и сяк...
> procedure tform1.FormCreate(Sender: TObject);
> begin
> form1.Activate;
> fdsVladKass.Open;
> vlk_name.KeyValue := vlk_name.ListSource.DataSet.FieldByName(vlk_name.
> KeyField).Value;
> end;
>
> не выходит.......:(.


Странно, аж не верится. У меня аналогичный код работает.

А если поменять код на
procedure tform1.FormCreate(Sender: TObject);
begin
form1.Activate;
vlk_name.ListSource.DataSet.open;
vlk_name.KeyValue := vlk_name.ListSource.DataSet.FieldByName(vlk_name.KeyField).Value;
ShowMessage("text=" + vlk_name.text +", keyvalue=" + VarToStr(vlk_name.keyvalue));
end;

что показывает showmessage?


 
alex_tonk   (2007-08-08 14:48) [7]

Как не странно но абсолютно ничего не показывает....(((


 
Bless ©   (2007-08-08 15:02) [8]

Что значит не показывает?
Ошибка выскакивает? Какая?
Или выполнение на эту строчку вообще не попадает?
Процедура Tform1.FormCreate(Sender: TObject) действительно стоит в качества обработчика события OnCreate формы?


 
alex_tonk   (2007-08-08 15:18) [9]

Мое слабое знание делфи просит зарание извинения...я новичек.

Процедура описана в Type  procedure FormCreate(Sender: TObject);
и дальше вызываеться....

>Процедура Tform1.FormCreate(Sender: TObject) действительно стоит в >качества обработчика события OnCreate формы?

как поставить процедуру в качестве обработчика события OnCreate формы?


 
Bless ©   (2007-08-08 15:45) [10]

Новичком быть совершенно не зазорно и извеняться тут нечего. Но было бы намного легче помочь тебе решить проблему, если бы ты хотя бы отвечал на поставленные вопросы. И уж совсем хорошо, если б сформулированные тобой предложения не нуждались во встречных вопросах для того, чтоб их можно было понять.

Я так и не понял, что означали твои слова
Как не странно но абсолютно ничего не показывает....(((

а вопросы, призванные это выяснить, ты благополучно проигнорировал.

Придется гадать. Предположу, что "абсолютно ничего не показывает" обозначает, что до строчки ShowMessage выполнение почему-то не дошло.
Если это так, то проверь, является ли эта процедура обработчиком события.
Проверить это можно в инспекторе объектов (тот, что по F11 появляется)
В Object Inspector-е для формы на закладке events напротив события OnCreate (слева) должно стоять имя этой процедуры (справа). Если там пусто (нечаянно удалил, редко, но бывает), то выбери эту процедуру из выпадающего списка.
Или просто дважды кликни мышкой на форме. Тебя перенесет в обработчик OnCreate. Это та самая процедура, в которой мы написали ShowMessage или другая какая-то?


 
alex_tonk   (2007-08-08 16:28) [11]

Спасиба огромное...все получилось!
Показывает в комбике то что нужно)))))


 
Bless ©   (2007-08-08 16:45) [12]

А в чем загвоздка-то была?


 
alex_tonk   (2007-08-08 17:02) [13]

Нужно было установить значение active:=false; в датасете...


 
Bless ©   (2007-08-08 17:18) [14]

За что тогда спасибо, непонятно.
Да и вообще непонятно, как active:=false; могло помочь.
Ну да ладно, хорошо все, что хорошо кончается. :)


 
alex_tonk   (2007-08-08 17:54) [15]

:)



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

Форум: "Базы";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.045 c
15-1194857221
@!!ex
2007-11-12 11:47
2007.12.09
Шифрование ICQ сообщение.


2-1195193394
Alex8
2007-11-16 09:09
2007.12.09
Сортировка выборки по вычисляемому полю


2-1195023978
andreoman
2007-11-14 10:06
2007.12.09
по каким портам происходит ping


15-1194604829
Cerberus
2007-11-09 13:40
2007.12.09
Удаленное ведение проекта.


2-1194974768
olegusis
2007-11-13 20:26
2007.12.09
зафиксировать размер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский