Форум: "Базы";
Текущий архив: 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