Форум: "Начинающим";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];
Внизуказатели - 2 Найти похожие ветки
← →
Novice (2005-08-11 10:33) [0]Здравствуйте еще раз!
Вчера задавал вопрос про указатели, подсказали, спасибо, предложили использовать вместо массива TObjectList.
Но, как оказалось, здесь та же проблема, а именно:
- я создаю объекты класса v1,v2: TMyClass;
- создаю объект списка objList: TObjectList;
- добавляю в него мои объекты v1 и v2 - objList.Add(v1); и v2 аналогично
Вопрос: как теперь по индексу элемента в objList добраться до содержимого полей моих объектов v1 и v2? (Напомню, цель всего этого такова: в процессе работы проги создаются и удаляются объекты типа v1 и v2, таких объектов много, и необходимо получать значения их полей как вручную, по имени конкретного объекта, так и автоматически, в цикле, перебором всех имеющихся.)
← →
begin...end © (2005-08-11 10:38) [1]> Novice (11.08.05 10:33)
> как теперь по индексу элемента в objList добраться до
> содержимого полей моих объектов
TMyClass(objList[...]).FieldName
← →
Digitman © (2005-08-11 10:42) [2]var
i, i1, i2: Integer;
..
i1 := objList.Add(TMyClass.Create(..));
i2 := objList.Add(TMyClass.Create(..));
..
//"вручную"
TMyClass(objlist[i1]).SomeFieldOfTMyClassObject := ..;
TMyClass(objlist[i2]).SomeOtherFieldOfTMyClassObject := ..;
..
//в цикле
for i :=0 to objlist.Count - 1 do
TMyClass(objlist[i]).SomeProperty := ..;
← →
Novice (2005-08-11 10:46) [3]Да, действительно работает! Спасибо! Только почему-то не раскрывается список с доступными полями и методами (когда ставишь точку после TMyClass(objlist[i]). ) , приходится писать вручную по памяти. Так и должно быть?
← →
begin...end © (2005-08-11 10:50) [4]> Novice (11.08.05 10:46) [3]
> Так и должно быть?
Нет.
← →
ANB © (2005-08-11 10:54) [5]
> Novice (11.08.05 10:46) [3]
Вместо TMyClass(objlist[i]). ) надо TMyClass(objlist[i])).
Точку не там ставишь.
← →
begin...end © (2005-08-11 10:56) [6]> ANB © (11.08.05 10:54) [5]
> надо TMyClass(objlist[i])).
Да ну?
← →
Novice (2005-08-11 11:00) [7]> Вместо TMyClass(objlist[i]). ) надо TMyClass(objlist[i])).
> Точку не там ставишь.
:-) Я хоть и Novice, но не тупой :-)
Программа запускается и работает, хотя список и не раскрывается.
Я проверил:
TMyClass(). - раскрывается
TMyClass(vsyakayaerunda). - раскрывается
TMyClass(vsyakaya.erunda). - уже не раскрывается
если в скобках есть точка или квадратная скобка, то список не раскрывается. Так и должно быть?
← →
Digitman © (2005-08-11 11:14) [8]
> Novice (11.08.05 11:00) [7]
если сильно мешает, поступи так
var obj: TMyClass; //лок.переменная
..
obj := TMyClass(vsyakaya.erunda);
obj. //здесь список ОБЯЗАН раскрыться !
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c