Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.024 c
3-1089118289
Акуля
2004-07-06 16:51
2004.08.01
вопорс


3-1089197645
sergeysha
2004-07-07 14:54
2004.08.01
Периодически зависает БД


14-1089806379
}|{yk
2004-07-14 15:59
2004.08.01
Альтернативные броузеры подросли на 0,84%


1-1089931646
Ardagast
2004-07-16 02:47
2004.08.01
function some(some: array of array of integer): integer;


14-1089646647
fenster
2004-07-12 19:37
2004.08.01
(Delphi) QuickReport и TPrintDialog




   Наверх