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

Вниз

Как заполнить список ListBox-а значениями двух полей...???   Найти похожие ветки 

 
Бульбаш   (2002-04-05 19:22) [0]

Хочу использовать ListBox для выбора значений поля. Можно ли забить Items значениями двух полей другой базы: ключевого, которое будет вносится в текущую базу при выборе значения из списка, и просмотрового, которое будет отображаться непосредственно при открытии списка. Если возможно то прошу плиз приблизительный набросок кода.
И еще вопрос: хочу попробовать ODAC 3.6. Наш адинистратор предупредил, что некорректно отрабатывает oratable (в эмуляции запроса не проставляется где-то пробел). Если кто столкнулся с этой проблемой, подскажите как решить???


 
Alexander Vasjuk   (2002-04-05 19:36) [1]

Index := Items.Add("Отображаемое значение");
Items.Objects[Index] := Pointer(Key); // Key: Integer
-----------------------------------------------------
Key := Integer(Items.Objects[ListBox.ItemIndex])


 
Бульбаш   (2002-04-08 21:55) [2]

Спасибо, попробовал сделать - вылезла проблема: в listbox все нормально, а в combobox не могу выцепить значение ключевого поля.
код приблизительно такой:
DBKuz.Items.AddObject(DM.KuzovNAIM.asString, pointer(DM.KuzovKOD.AsInteger));
Значение пытюсь получить так:
kz:=integer(Avto.DBKuz.Items.Objects[DBKuz.ItemIndex]);
В итоге значение всегда одно и тоже, а нужно использовать именно combobox. Не подскажете, в чем дело???


 
dymka   (2002-04-08 22:02) [3]

Я долго не думал в подобной ситуации - написал наследника для TComboBox, куда по тупому загонял оба поля, определив внутри еще Keys: TStringList :) Задача была точно такая же... Естественно, у меня ComboBox инициализировался только спец методом и не отображал актуальных данных (мне это было не нужно :).


 
Бульбаш   (2002-04-09 09:06) [4]

Я понимаю, что извернуться можно крупно, но есть ли какой-нибудь простой и действенный способ заставить combobox вернуть нужное мне значение???


 
Johnmen   (2002-04-09 09:25) [5]

Вообще непонятно, зачем так гиморроить, когда есть специальные Data-Aware компоненты, напр. DBComboBox и куча др. !


 
wicked   (2002-04-09 10:22) [6]

2 Бульбаш ©

> Я понимаю, что извернуться можно крупно, но есть ли какой-нибудь
> простой и действенный способ заставить combobox вернуть
> нужное мне значение???

есть... называется TDBLookupComboBox...


 
Бульбаш   (2002-04-09 11:51) [7]

Как раз таки на лукапах у меня сейчас все и построено, но хочу отойти от локальных методов ( из-за блокировок таблиц).Задумка такая: Все данные ввести в edit и combobox, а затем снять значения в качестве параметров запросов insert или update. Сам понимаю, что гиморно, а как можно по другому. Не давать же .Edit или .Insert. Это же все-таки клиент-серверная технология.


 
wicked   (2002-04-09 12:06) [8]

твоё дело... с oracle я не работал...
но вот еще способ - для простого combobox"а завести массив ключей где-нибудь отдельно и при выборе элемента из combobox"а брать соответствующий элемент из массива... например, я использовал в качестве массива TList - он хранит pointer"ы, но нам никто не мешает хранить там integer"ы, главное - не забывать об этом... заполнять их надо вместе при активизации формы - для того случая, если данные справочника поменяются во время выполнения программы... и не вздумай сортировать items"ы combobox"а после заполнения...
надеюсь, детали сам продумаешь...


 
Lusha   (2002-04-09 12:08) [9]

>Бульбаш
Используйте CachedUpdates...


 
Леха   (2002-04-09 12:11) [10]

Странно что у тебя не работает комбобокс я для этих целей пользуюсь такой фунцией попробуй

function GetObj(CB:TComboBox):integer;
begin
Result:=-1000;
if CB.ItemIndex<>-1 then Result:=integer(CB.Items.Objects[CB.ItemIndex]);
end;

wicked в клиент-сервере зачастую действительно выгоднее прочитать данные и пользоваться ими чем использовать Data Aware компоненты и гадать в какой трансакции они будут работать и чего заблокируют


 
ne   (2002-04-10 05:39) [11]

я делал проще
1. обявлял наследника от Tobject
2. прописывал там нужные мне поля
3. перед вставкой инит объекта
4. вставляешь обЪект
5. по итеминдекс возвращаешь обект и читаешь данные


 
Леха   (2002-04-10 15:27) [12]

Есть такой набор компонент Rx, в них RxDBLookupCombo, RxLookupEdit, ... - все реализуется. Если интересно - могу выслать дистрибутивы.



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

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

Наверх





Память: 0.47 MB
Время: 0.004 c
14-2651
pierre
2002-03-26 17:59
2002.05.02
Ms-dos


3-2484
Hermit
2002-04-10 10:14
2002.05.02
Системные настройки BDE (все еще актуально)


14-2665
VN1
2002-03-27 00:46
2002.05.02
Кто-нибудь пользовался абонетским ящиком?


6-2636
knyaz17
2002-02-15 13:43
2002.05.02
Как в WebBrowser вызвать уже заполненный дилог Find???


3-2457
kaif
2002-04-11 02:36
2002.05.02
Что делать с Table is in use ?!





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