Главная страница
    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.043 c
3-1185134768
Tendr
2007-07-23 00:06
2007.12.09
Соединение с СУБД Oracle через delphi


3-1185587116
wsv
2007-07-28 05:45
2007.12.09
Написать запрос


15-1194319585
Учитель
2007-11-06 06:26
2007.12.09
Какие есть БЕСПЛАНТЫЕ программы по созданию видеоуроков?


1-1190089977
APXi
2007-09-18 08:32
2007.12.09
Странная работа TreeView


15-1194738002
Kostafey
2007-11-11 02:40
2007.12.09
С днем рождения ! 11 ноября





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский