Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.28;
Скачать: 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 вся ветка

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

Наверх




Память: 0.5 MB
Время: 0.04 c
9-1090874908
RyDmi
2004-07-27 00:48
2004.11.28
Для чего нужен параметр doWaitVBlank в DXDRAW?


14-1100070632
Суслик
2004-11-10 10:10
2004.11.28
service pack


6-1095420604
Softal
2004-09-17 15:30
2004.11.28
Ssh


1-1100116011
Neiron
2004-11-10 22:46
2004.11.28
Пакер для Portable Executable на Delphi


1-1100503791
malamba
2004-11-15 10:29
2004.11.28
снова о TreeView - как вернуться к выделенному