Главная страница
    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.47 MB
Время: 0.042 c
14-1100242672
MBo
2004-11-12 09:57
2004.11.28
Пятница - новые похождения Васи Пупкина и другие задачки ;)


14-1099931906
Piter
2004-11-08 19:38
2004.11.28
Интересно, почему работает следующий код :)


4-1097792009
AKA
2004-10-15 02:13
2004.11.28
Как сделать приложение активным ?!


1-1100177008
gonzales
2004-11-11 15:43
2004.11.28
Разложить файл на несколько частей


1-1100527259
aap
2004-11-15 17:00
2004.11.28
Cоздание Hint-а как в Win XP.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский