Форум: "Основная";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
ВнизКак имея доступ к компоненту получить на него указатель? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c