![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
в 1Ске есть элемент "СписокЗначений" (аналог нашего ComboBox)
в него можно добавлять данные в виде ДобавитьЗначение(Значение, представление) Представление - это то, что реально юзер видит в списке Значение - реальное значение, соответствующее выбранной записи как нечто подобное сделать в делфи на комбобоксе? поясню зачем это надо есть БД, в которой есть таблица с 2я полями id,name пользователь должен выбирать из списка значения из поля name, но в БД надо писать id, соответствующее выбранному name Можно кнешна перед записью делать select id from tab where name=[COmboBox1.text] но что-то как то не комильфо кто решал подобные задачи? |
|
#2
|
||||
|
||||
|
Цитата:
Код:
ComboBox1.Items.AddObject('test',TObject(6));
Caption:=IntToStr(Integer(ComboBox1.Items.Objects[0])); |
|
#3
|
|||
|
|||
|
Или (если ID не integer) завести 2 списка (чтоб потом не связываться с освобждением ресурсов).
В видимом - наименования, а в невидимом - ID. |
|
#4
|
|||
|
|||
|
roamer тож не комильфо
Admin f[etyyf!!! спасибо, ты красафчег!!! все получилось |
|
#5
|
|||
|
|||
|
А если надо будет в таком списке хранить не только ID, но и аналог (из 1с): Вид() , Тип(), а также признак неопределенного значения ?
Тогда (опять же). Либо отдельный TStrings (с этими атрибутами). Либо в качестве Objects[] использовать Record. В этом случае придется озаботиться освобождением ресурсов. Иначе будет точно "не комильфо". :-) |
|
#6
|
|||
|
|||
|
roamer
поясни о каком освобождении ресурсов ты говоришь, чет я не вкуриваю |
|
#7
|
|||
|
|||
|
Добавляется указатель на объект (в памяти).
Программист (в общем случае) должен сам позаботиться о том, чтобы создать его в памяти (например, с помощью NEW). А затем сам же и удалить (Dispose). Типа этого (применительно к TTreeView). Код:
Type
PRec_AttrEssenceInTree = ^TRec_AttrEssenceInTree; //Атрибуты узла в TTree_DB_fodb
TRec_AttrEssenceInTree = packed record
//ID_THIS : WideString;
ID_THIS : String[CountChar_in_ID_This]; //ID строки в таблице базы данных
ID_KIND : byte; //ID вида (объект или процесс)
ITS_BASE : byte; //Признак: базовый или ссылочный
ITS_GLOBAL : byte; //Признак глобальности
ITS_ABSTRACT : byte; //Признак абстрактности
end;
Var
PRecEssence : PRec_AttrEssenceInTree;
begin
...
New(PRecEssence);
...
...
Sx:='Наименование';
Selected:=Items.AddChildObject(NodeParent,Sx,PRecEssence);
...
...
Dispose(PRec_AttrEssenceInTree(Node.Data)); |