![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не могу Locate понять. [D5, D6]
KPY © (2002-11-19 06:08:00)Есть DBComboBox. Я его заполняю
with DM_Table.Tb_PicDat do
begin
DM_Table.Tb_PicDat.First;
while not DM_Table.Tb_PicDat.Eof do
begin
DBComboBox1.Items.Add(FieldByName("Name").AsString);
Next;
end;
end;
Затем по выбору из списка мне нужно найти выбранную записть в базе и считать ее номер(в базе есть такое поле)
procedure TFm_SetPicDat.DBComboBox1Change(Sender: TObject);
begin
with DM_Table.Tb_PicDat do
begin
Edit;
Locate("Name",DBComboBox1.Text,[loCaseInsensitive]);
label1.Caption:=IntToStr(FieldByName("Num").AsInteger);
еnd;
В принципе поиск работает :( но только в том случае когда выбираешь запись в комбобоксе которая расположена выше текущей.
Вот например если я выбрал 100ю запись , 99 на лабеле отображается а 101 нет. Ключевое поле Num
pivo_est (2002-11-20 01:54:00) [1]Прошу прощения не прочитал от Andriano;
pivo_est (2002-11-20 01:50:00) [2]>Есть DBComboBox. Я его заполняю:
>DBComboBox1.Items.Add(FieldByName("Name").AsString)
А почему нельзя использовать TDBLookupComboBox?
И заполнять ничего не надо.
Или я что-то недопонимаю?
Lord Warlock (2002-11-19 09:47:00) [3]
> DBComboBox1.Text возвращает то, что надо!
ComboBox1.Text возвращает то же самое
Andriano (2002-11-19 09:47:00) [4]Берешь DBLookupComboBox: поле DataSource и field - ПУСТЫЕ, заполняешь только listsource, lookupfield, keyfield.
Открываешь DataSet в программе и всё.
Когда выбирается новая запись, обрабатываешь событие типа OnKeyValueChange. Там проверяешь: LocateKey должно быть true. И смотришь чему равно keyvalue.
DBComboBox не будет работать как одна колонка DBGrida, а вот DBLookupComboBox по своей природе может.
Alexandr (2002-11-19 09:45:00) [5]так а чего бы тебе хотелось-то?
KPY (2002-11-19 09:23:00) [6]Поставил я простой комбобокс все стало ОК но это не совсем то чего мне хотелось
А DBComboBox1.Text возвращает то, что надо!
stone (2002-11-19 09:13:00) [7]вообще то, TDBComboBox служит для заполнения значения поля, для ваших целей в таком контекстк целесообразнее было бы использование TComboBox.
Хотя с помощью TDBLookupComboBox можно реализовать данную функциональность без дополнительного кода.
iNew (2002-11-19 07:41:00) [8]А DBComboBox1.Text возвращает то, что надо?
Alexandr (2002-11-19 07:31:00) [9]а зачем Dbcombobox?
тут по-моему обычный комбобокс самое то будет.
Да и вообще, странно как-то все...
KPY (2002-11-19 07:25:00) [10]что с едит что без него одинаково
Alexandr (2002-11-19 06:58:00) [11]странно, зачем слово edit.