Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать, что Stringlist был создан 
V
    Опции темы
pseud
Дата 12.5.2008, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



Цитата(Poseidon @  12.5.2008,  15:09 Найти цитируемый пост)
В предыдущем твоем посте ошибка в самом коде. Написал бы так:


это была не ошибка а частный случай, который не подразумевал твоей обертки.
безусловно ты говоришь правильно.

это безупречная конструкция:
Код

List1 := TStringList.Create;
try
  ...
  List1.Add;
  ...
finally
  List1.Free;
end;


но пример я все таки приведу, где нам понадобится Assigned
чтобы ты не говорил

Цитата

А вообще я не представляю себе ситуацию, в которой необходимо проверять создан-ли список или нет


Код

function TForm1.GetListAsString(ATitle: string; AList: TStringList = nil): string;
begin
  Result := ATitle;
  if Assigned(AList) then
    Result := Result + ': ' + AList.CommaText;
end;


Это сообщение отредактировал(а) pseud - 12.5.2008, 15:20


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Poseidon
Дата 12.5.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(pseud @  12.5.2008,  15:19 Найти цитируемый пост)
но пример я все таки приведу, где нам понадобится Assigned
Приведи еще пример вызова приведенной функции, и я тебе покажу что без проверки можно обойтись  smile 



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
MadCoder
Дата 12.5.2008, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

Репутация: 1
Всего: 2



Код

StringList1 := TStringList.Create;
try
  метод вызвавший Exception
  ...
except
  обработали Exception
end;
...
StringList1.Add('куку');

В том то и дело, что мне не нужно создавать TStringlist, если он не создан, мне нужно определить, был ли он создан.
PM WWW ICQ   Вверх
Poseidon
Дата 12.5.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(MadCoder @  12.5.2008,  16:03 Найти цитируемый пост)
В том то и дело, что мне не нужно создавать TStringlist, если он не создан, мне нужно определить, был ли он создан.
Вопрос упирается не в то, что тебе нужно, а в то, зачем тебе это! Любой код можно построить так, что ты будешь точно знать, что Stringlist создан или не создан. Поэтому проверку производить не нужно.

А вообще, думаю, суть вопроса раскрыта. Спрашивалось "Как", ответили что через Assigned. Рациональность этого способа - это уже другая тема.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
MadCoder
Дата 12.5.2008, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

Репутация: 1
Всего: 2



Цитата(Poseidon @ 12.5.2008,  16:17)
Цитата(MadCoder @  12.5.2008,  16:03 Найти цитируемый пост)
В том то и дело, что мне не нужно создавать TStringlist, если он не создан, мне нужно определить, был ли он создан.
Вопрос упирается не в то, что тебе нужно, а в то, зачем тебе это! Любой код можно построить так, что ты будешь точно знать, что Stringlist создан или не создан. Поэтому проверку производить не нужно.

А вообще, думаю, суть вопроса раскрыта. Спрашивалось "Как", ответили что через Assigned. Рациональность этого способа - это уже другая тема.

Зачем я написал выше. Как в этом случае можно заранее знать, был ли он создан или нет?
PM WWW ICQ   Вверх
THandle
Дата 12.5.2008, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 65
Всего: 372



Народ, что спорить то? Хочется человеку проверять - пусть проверяет на здоровье. Ответ был дан в 1 посте. smile 

ЗЫ: сам всегда пользуюсь конструкцией вида:

Код

var
  s : TStringList;
begin
  s := TStringList.Create;
  try
    //some code
  finally
    s.Free;
  end
end;

PM   Вверх
pseud
Дата 13.5.2008, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



Poseidon, я ж привел 2й пример. какой ты упорный. тебе не нравится именно Assigned? ну можно написать
Код

if List <> nil then


Poseidon, 
THandle, 
ну есть свойство в классе кочующее от предка к наследнику, от наследника к наследнику_наследника и наследник_наследника хочет знать в каком-то методе, не очистил ли наследник (допустим написанный другим прогером) это свойство. (третий пример)


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.