Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Вниз

О TList и функциях   Найти похожие ветки 

 
Pentium133 ©   (2004-10-13 11:54) [0]

Добрый день.

Такой вопрос к мастерам:

Если использую такой вариант реализации функции - ошибок нет:
function ReadList: TList;
begin
  Result:= TList.Create;
  //прочая инициализация
end;

вызов:
 List:= ReadList;

Но по логике приложения предпочтительнее делать так:
function ReadList: TList;
begin
  Result.Clear
  //прочая инициализация
end;


вызов:
 List:= TList.Create; //это в конструкторе
и при надобности:
 List:= ReadList;
И вот здесь AccessViolation...
Как мне правильно реализовать второй вариант?


 
Reindeer Moss Eater ©   (2004-10-13 12:02) [1]

function ReadList: TList;
begin
 Result.Clear
 //прочая инициализация
end;

А кто проинициализировал Result?
Санта?


 
ЮЮ ©   (2004-10-13 12:08) [2]

и при надобности вместо
List:= ReadList;
надо просто ReadList, где
procedure ReadList;
begin
 List.Clear // тот самый List, что в конcтрукторе
 //прочая инициализация
end;


 
Pentium133 ©   (2004-10-13 12:08) [3]

Но если во втором варианте писать Result:= TList.Create, не будет ли утечек памяти? Ведь на момент вызова List уже существует?


 
Reindeer Moss Eater ©   (2004-10-13 12:09) [4]

Ведь на момент вызова List уже существует?

А во Вселенной может существовать только один экземпляр TList?


 
Reindeer Moss Eater ©   (2004-10-13 12:10) [5]

function ReadList: TList;
begin
Result := существующий_экземпляр_TList;
Result.Clear
 //прочая инициализация
end;


 
Pentium133 ©   (2004-10-13 12:11) [6]


> ЮЮ ©   (13.10.04 12:08) [2]

Ваш вариант не подойте. Извените я сразу не сказал что ReadList это метод объекта. И кто когда его вызовет этот объект не знает. Он просто должен проинициализировать список.


 
Reindeer Moss Eater ©   (2004-10-13 12:13) [7]

Извените я сразу не сказал что ReadList это метод объекта.
А фиг ли мы обсуждаем код, которого не видим?


 
Pentium133 ©   (2004-10-13 12:14) [8]

Хм. Напрашивается такой вариант:
procedure ReadList(var lst: TList);
Думаю это будет правильно.
Судя по всему через функцию задуманно реализовать не удастся.


 
Pentium133 ©   (2004-10-13 12:17) [9]


> А фиг ли мы обсуждаем код, которого не видим?

"Не уверен не обгоняй"
Если сразу не понял вопроса чего тогда советовал?


 
Reindeer Moss Eater ©   (2004-10-13 12:19) [10]

А где я тебе что-либо советовал?


 
Amoeba ©   (2004-10-13 12:20) [11]


> Pentium133 ©   (13.10.04 12:17) [9]
>
> > А фиг ли мы обсуждаем код, которого не видим?
>
> "Не уверен не обгоняй"
> Если сразу не понял вопроса чего тогда советовал?

Так задавай вопрос так, чтобы он сразу был понят правильно.


 
Pentium133 ©   (2004-10-13 12:23) [12]

Давайте еще пофилосовствуем о "правильном вопросе"...
Вопрос был задан правильно, т.к. правильно заданный вопрос содержит в себе половину ответа и этот ответ я нашел сам. Все спасибо за косвенную помощь.


 
Reindeer Moss Eater ©   (2004-10-13 12:25) [13]

передавай привет Санте.



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

Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.038 c
9-1088730682
Xerx
2004-07-02 05:11
2004.10.31
X Window


3-1096325902
Mizanthrope
2004-09-28 02:58
2004.10.31
Сортировка записей в таблице


10-1054029776
serg_
2003-05-27 14:02
2004.10.31
Проблема "лишних" GDI-объектов в corba-сервере


1-1098187175
Relaxxx
2004-10-19 15:59
2004.10.31
Где мне найти функцию написания числа прописью, с использованием


14-1096499566
ExEcUTER
2004-09-30 03:12
2004.10.31
"Помошник экзаменатора"и игра "Кости"..курсовая..





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