|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
ComboBox, (сделать как в 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)); |