Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

Непонятки с указателями   Найти похожие ветки 

 
jafar   (2004-05-30 22:21) [0]

Добрый день.
Господа, подскажите что я делаю не так.
Есть TList в котором я храню элементы класса TFacilityLink. Добавляю их в коллекцию так:

l := TFacilityLink.Create( imgSource.Canvas );
l.Source      := sourceModel.Generators[ i ];
l.Destination := selectedFacility;
sourceModel.links.Add( @l );

links - это и есть TList.
При попытке вызвать метод класса TFacilityLink вылетает Access Violation:

for i := 0 to model.links.Count - 1 do begin
   p := model.links.Items[ i ];
   PFacilityLink(p)^.Erase;  // тут ошибка
end;

Подскажите, как добиться нормального приведения типа и вызова метода моего класса?


 
Palladin ©   (2004-05-30 22:28) [1]

Что такое @? Это адрес по которому содержится значение переменной l. Таким образом ты все время добавляешь в список одно и тоже значение, которое после отработки процедуры в которой оно объявлено, теряет смысл ибо содержится в стеке. Идентификаторы объектов класса сами по себе являются указателями. Соответственно бессмыленное @l - заменяем на очень даже осмысленное Pointer(l);


 
Jel ©   (2004-05-30 22:30) [2]


> sourceModel.links.Add( @l );

Заменить на sourceModel.links.Add( pointer(l) );


 
jafar   (2004-05-30 22:51) [3]

Спасибо, все заработало.



Страницы: 1 вся ветка

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

Наверх




Память: 0.45 MB
Время: 0.035 c
3-1084593063
неизвестный
2004-05-15 07:51
2004.06.13
Socket и базы данных


14-1085816437
Knight
2004-05-29 11:40
2004.06.13
Как правильно прилипание окна сделать?


14-1085376070
ega23
2004-05-24 09:21
2004.06.13
Хокку дня....


1-1085999092
Андрей__
2004-05-31 14:24
2004.06.13
DLL в EXE


1-1086162955
Вованчик
2004-06-02 11:55
2004.06.13
ссылка на компонент





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский