Вниз
Скачать: CL | DM;

Как имея доступ к компоненту получить на него указатель?   Найти похожие ветки 

← →
Mishenka   (2004-11-12 14:12) [0]

Есть список TList, в котором содержатся указатели на компоненты. Как имея доступ к компоненту получить на него указатель?


← →
GuAV ©   (2004-11-12 14:19) [1]

Mishenka   (12.11.04 14:12)
TButton1, TMemo1 - это и есть указатели.

Для компонентов удоднее TComponentList


← →
Digitman ©   (2004-11-12 14:21) [2]

List.Items[такой-то] - вот тебе и указатель


← →
Ega23 ©   (2004-11-12 14:25) [3]

var
List:TList;

List - указатель на экземпляр класса TList.


← →
Mishenka   (2004-11-12 14:42) [4]

Ну допустим у нас есть TList в котором указатели на кучу ComboBox"ов. Потом мы захотели один ComboBox удалить из списка.  Тобишь есть CBox: TCombobox. Вопрос был в том, как имея эту переменную СBox получить указатель на неё из списка List????


← →
Pentium133 ©   (2004-11-12 14:44) [5]

Ты для начала идентефицируй ComboBox"ы напрмер Tag"ом, а потом ищи и удаляй


← →
Mishenka   (2004-11-12 14:47) [6]

А без идентификации никак нельзя обойтись?


← →
Ega23 ©   (2004-11-12 14:48) [7]

for i:=0 to List.Count-1 do
if (List.Items[i] is TComboBox) then
 if TComboBox(List.Items[i])=CBox then
  .......


← →
Digitman ©   (2004-11-12 14:48) [8]


> есть CBox: TCombobox


а зачем переменная-то ? тебе что, недостаточно того, что ссылка на объект УЖЕ хранится в списке ? нашута эту ссылку еще где-то держать в памяти ?


> как имея эту переменную СBox получить указатель на неё из
> списка List????


еще раз - CBox это 5-е колесо в телеге ...

тебе чего нужно-то ? обратиться к какому-то св-ву или вызвать какой-то метод одного из объектов класса TCombobox, хранящихся в списке ?

ну и обращайся на здоровье !

TCombobox(List.Items[такой-то]).Text := "jhgfjhgkjhg";


← →
Ega23 ©   (2004-11-12 14:51) [9]

for i:=0 to List.Count-1 do
if (List.Items[i] is TComboBox) then
if TComboBox(List.Items[i])=CBox then


Хотя для TList такая конструкция if (List.Items[i] is TComboBox) then вроде не пройдёт... Это для TObjectList...


← →
Digitman ©   (2004-11-12 15:38) [10]


> Ega23 ©   (12.11.04 14:51) [9]


if TObject(List.Items[i]) is TComboBox then

и все ... и никакой TObjectList не нужен ..


← →
Ega23 ©   (2004-11-12 15:43) [11]

Digitman ©   (12.11.04 15:38) [10]

Ну да, что-то в этом духе. Я помню, что напрямую List.Items[i] is TComboBox компиллятор в TList ругается, а в TObjectList - нет...


← →
Rem ©   (2004-11-12 16:49) [12]

i := List.IndexOf(CBox);
if (i > -1) then // операции с i-м элементом;


>>Потом мы захотели один ComboBox удалить из списка
List.Remove(CBox);


← →
Rem ©   (2004-11-12 17:10) [13]

Кстати, зачем создавать дополнительный список, если у TComponent есть свойство Components - список, содержащий все Owned компоненты?


← →
Владислав ©   (2004-11-12 17:51) [14]

Телепаты перевелись? ;)
Судя по всему, у автора есть КомбоБокс. "Из него" нужно получить указатель на TList. :)
Если угадал, то ответ есть в [5]. Возможно сделать переменную типа TList глобальной тогда такая связь не нужна.
Остальное только колдовством :)



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

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



Память: 0.48 MB
Время: 0.023 c
14-1100415869
YurikGL
2004-11-14 10:04
2004.11.28
jpeg-троян


1-1100165505
PURGEN
2004-11-11 12:31
2004.11.28
LoadFromStream


4-1098254290
AlexTayfun
2004-10-20 10:38
2004.11.28
Изменить цвет чужого окна.


1-1100646157
CHE
2004-11-17 02:02
2004.11.28
TLABEL


1-1100159363
cvg
2004-11-11 10:49
2004.11.28
Как бороться с Access violation?




   Наверх