Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.01;
Скачать: CL | DM;

Вниз

ComboBox   Найти похожие ветки 

 
Qwer   (2004-07-15 16:38) [0]

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


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

ComboBox1.Items.Objects[I]


 
clickmaker ©   (2004-07-15 16:43) [2]

Items.AddObject


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

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

    Спасибо !!!


 
clickmaker ©   (2004-07-15 17:04) [4]


> 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


 
clickmaker ©   (2004-07-15 17:05) [5]

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

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


 
infom ©   (2004-07-15 17:07) [6]

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


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

clickmaker

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


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

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


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

type PID: ^TID;

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


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

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


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

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


 
Ega23 ©   (2004-07-15 17:28) [12]

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


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

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


 
Ega23 ©   (2004-07-15 17:43) [14]

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

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


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

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

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

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

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


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

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


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

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

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



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

Текущий архив: 2004.08.01;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.061 c
14-1089887417
vecna
2004-07-15 14:30
2004.08.01
Расшифровка протеста


3-1087832937
ceval
2004-06-21 19:48
2004.08.01
DBGrid показено только несколько полей,а как другие поля таблицы


1-1089974539
Саша
2004-07-16 14:42
2004.08.01
Печать компонента: StringGrid


1-1090310634
888
2004-07-20 12:03
2004.08.01
progressbar.create


1-1090147767
Phoenix
2004-07-18 14:49
2004.08.01
Invalid pointer operation