Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ComboBox


Qwer ©   (2004-07-15 16:38:00) 

В ComboBox представление значения записываю в Items. Подскажите куда мне записать само значение , допустим ID.
  Спасибо !!!


Гаврила   (2004-07-15 20:07:00) [1]

>>LM2   (15.07.04 17:51) [15, 16]

Это лажа, поимеем проблемы с памятью
если строка, надо в объекты ставить PChar
при этом грамотно управляя выделением \ освободлением памяти
и не парить мозги.
Если же ID - Integer, то памятью управлять вообще не надо, достаточно типизации под TObject и обратно под Integer.
Исключение составляет случай для ID = -1


LM2   (2004-07-15 17:51:00) [2]

Ошибся, вместо str, ID поставь


LM2   (2004-07-15 17:50:00) [3]

Попробуй так, у меня вроде работает

1) чтоб запихнуть ID
var
ID: string;
begin
 ID := '10';
 ComboBox1.AddItem('Первая строка', TObject(str));  
end;

2)чтоб достать ID

ShowMessage(String(ComboBox1.Items.Objects[ComboBox1.ItemIndex]));


Ega23   (2004-07-15 17:43:00) [4]

В LookupComboBox с конкретными значениями работает, а они у меня появляются по в процесе работы ! (

С какими КОНКРЕТНЫМИ значениями? Чё ты несёшь?


Qwer   (2004-07-15 17:41:00) [5]

В LookupComboBox с конкретными значениями работает, а они у меня появляются по в процесе работы ! (


Ega23   (2004-07-15 17:28:00) [6]

Не изобретай велосипед, тебе LookupComboBox нужен, там уже всё реализовано.


Qwer   (2004-07-15 17:23:00) [7]

clickmaker
Извени что с получением ИДа не так !
type PID: ^TID  --- ошибка


Qwer   (2004-07-15 17:12:00) [8]

DB компонент не пойдет , так как запрос все время разный , а там надо постоянно фиксировать колонку ! (разный по существу а не по данным)


clickmaker   (2004-07-15 17:11:00) [9]

type PID: ^TID;

s := PID(ComboBox.Items.Objects[ComboBox.ItemIndex]).ID;


Qwer   (2004-07-15 17:11:00) [10]

DB компонент не пойдет , так как запрос все время разный , а там надо постоянно фиксировать колонку !


Qwer   (2004-07-15 17:09:00) [11]

clickmaker

Спасибо , а как потом получить этот ИД текущей строки ?


infom   (2004-07-15 17:07:00) [12]

а помоему надо просто использовать DB компонент


clickmaker   (2004-07-15 17:05:00) [13]

Маленькая поправка:
TID = record
  ID: ShortString;
end;

или юзать class вместо record


clickmaker   (2004-07-15 17:04:00) [14]


> Qwer   (15.07.04 16:57) [3]

Id у тебя строка? А не число типа integer?
Тогда так
type
 TID = record
   ID: string;
 end;

var Rec: ^TID;

 GetMem(Rec, SizeOf(TID));
 Rec.ID := ADODataSet1.FieldByName('Id').AsString;
 ComboBox3.Items.Add(ADODataSet1.FieldByName('Comp').AsString, TObject(Rec));


потом не забудь FreeMem(Rec) для всех Items


Qwer   (2004-07-15 16:57:00) [15]

Извените не понял
представление я записываю так :
ComboBox3.Items.Add(ADODataSet1.FieldByName('Comp').AsString);
а как Id записать ? (строка)
и как его потом получить ?

    Спасибо !!!


Гаврила   (2004-07-15 16:43:00) [16]

ComboBox1.Items.Objects[I]


clickmaker   (2004-07-15 16:43:00) [17]

Items.AddObject


Наверх

Титульная страница Поиск, карта сайта Написать письмо