![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как имея доступ к компоненту получить на него указатель? [D6, Win2k]
Mishenka © (2004-11-12 14:12:00)Есть список TList, в котором содержатся указатели на компоненты. Как имея доступ к компоненту получить на него указатель?
Владислав (2004-11-12 17:51:00) [1]Телепаты перевелись? ;)
Судя по всему, у автора есть КомбоБокс. "Из него" нужно получить указатель на TList. :)
Если угадал, то ответ есть в [5]. Возможно сделать переменную типа TList глобальной тогда такая связь не нужна.
Остальное только колдовством :)
Rem (2004-11-12 17:10:00) [2]Кстати, зачем создавать дополнительный список, если у TComponent есть свойство Components - список, содержащий все Owned компоненты?
Rem (2004-11-12 16:49:00) [3]
i := List.IndexOf(CBox);
if (i > -1) then // операции с i-м элементом;
>>Потом мы захотели один ComboBox удалить из списка
List.Remove(CBox);
Ega23 (2004-11-12 15:43:00) [4]Digitman © (12.11.04 15:38) [10]
Ну да, что-то в этом духе. Я помню, что напрямую List.Items[i] is TComboBox компиллятор в TList ругается, а в TObjectList - нет...
Digitman (2004-11-12 15:38:00) [5]
> Ega23 © (12.11.04 14:51) [9]
if TObject(List.Items[i] )is TComboBox then
и все ... и никакой TObjectList не нужен ..
Ega23 (2004-11-12 14:51:00) [6]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...
Ega23 (2004-11-12 14:48:00) [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:00) [8]
> есть CBox: TCombobox
а зачем переменная-то ? тебе что, недостаточно того, что ссылка на объект УЖЕ хранится в списке ? нашута эту ссылку еще где-то держать в памяти ?
> как имея эту переменную СBox получить указатель на неё из
> списка List????
еще раз - CBox это 5-е колесо в телеге ...
тебе чего нужно-то ? обратиться к какому-то св-ву или вызвать какой-то метод одного из объектов класса TCombobox, хранящихся в списке ?
ну и обращайся на здоровье !
TCombobox(List.Items[такой-то]).Text := 'jhgfjhgkjhg';
Mishenka (2004-11-12 14:47:00) [9]А без идентификации никак нельзя обойтись?
Pentium133 (2004-11-12 14:44:00) [10]Ты для начала идентефицируй ComboBox'ы напрмер Tag'ом, а потом ищи и удаляй
Mishenka (2004-11-12 14:42:00) [11]Ну допустим у нас есть TList в котором указатели на кучу ComboBox'ов. Потом мы захотели один ComboBox удалить из списка. Тобишь есть CBox: TCombobox. Вопрос был в том, как имея эту переменную СBox получить указатель на неё из списка List????
Ega23 (2004-11-12 14:25:00) [12]var
List:TList;
List - указатель на экземпляр класса TList.
Digitman (2004-11-12 14:21:00) [13]List.Items[такой-то] - вот тебе и указатель
GuAV (2004-11-12 14:19:00) [14]Mishenka (12.11.04 14:12)
TButton1, TMemo1 - это и есть указатели.
Для компонентов удоднее TComponentList