|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.11.2010, 16:53 | #1 |
Форумчанин
Регистрация: 15.11.2007
Сообщений: 229
|
Определить создан ли TStringList
Добрый день!
Есть функция в своём компоненте, там нужно поставить проверку на то что входной StringList создан или нет, и если нет, то создавать его. Код:
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
|
14.11.2010, 16:57 | #2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Код:
|
14.11.2010, 17:06 | #3 |
Форумчанин
Регистрация: 15.11.2007
Сообщений: 229
|
Не работает
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
|
14.11.2010, 17:09 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
либо проверять указатель на nil, либо никак.
ибо если обьект не существует то будет AV. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
14.11.2010, 17:16 | #5 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
|
14.11.2010, 17:17 | #6 | |
Форумчанин
Регистрация: 15.11.2007
Сообщений: 229
|
Тоже не работает. И самое странное что...
Код:
17:19 Цитата:
Вот мой: Код:
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
Последний раз редактировалось mihali4; 14.11.2010 в 17:20. |
|
14.11.2010, 17:19 | #7 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Смею, смею...
Нормальный подход - объявлять его в локальных переменных, а потом пытаться проверить вне процедуры, где он был объявлен... Литературой по программированию, похоже, брезгуете ? И кстати: У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом. Это - флуд. Читаем правила. Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе... Уважайте форумчан, и они ответят вам взаимностью... Модератор Последний раз редактировалось mihali4; 14.11.2010 в 19:12. |
14.11.2010, 17:24 | #8 |
Форумчанин
Регистрация: 15.11.2007
Сообщений: 229
|
Упс, в этом да, ошибочка вышла. Если переменная передаётся в процедуру, то всё нормально определяется.
Литературой не брезгую, но в той, что у меня есть - ответа этот вопрос нет.
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
|
14.11.2010, 18:24 | #9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
NoName_emaNoN
Просто на будущее. По всем законам программирования любая переменная перед тем как она будет использована, должна быть проиницилизирована. Это - Святое правило. И часто причина трудноуловимых багов и самых неожиданных глюков ПО. Другой вопрос, что многие компиляторы языков высокого уровня по разному относятся к использованию неиницилизированных переменных. Delphi выдаст warning... А вот программка под .NET compiler (например, на C#) выдаст ошибку (имхо, абсолютно законно): Код:
Вернёмся к Delphi. Во всех известных версиях Delphi действует следующая не совсем документированная фишка (разработчики в документации к одной из версий сказали, что это так, но в будущей версии может и не быть. Но пока есть): Все глобальные переменные автоматически иницилизируются (нулём или пустым значением). А вот локальные переменные - не иницилизируются. (можете самостоятельно проверить это утверждение). |
15.11.2010, 20:03 | #10 |
Форумчанин
Регистрация: 15.11.2007
Сообщений: 229
|
Да, спасибо, конечно, за прописные истины)
Проверять даже не буду, поверю на слово. У меня была немного иная ситуация, и всё равно, кстати, Assigned не сработал, так что решил просто этого не делать до лучших времён, пока это не станет проблемой.
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как узнать, создан/уничтожен ли обьект типа TObject? | Bad-XxX | Общие вопросы Delphi | 1 | 04.10.2010 18:46 |
Определить, создан ли класс. | Alex Cones | Общие вопросы Delphi | 4 | 14.01.2010 18:12 |
Как проверить создан ли класс конструктором? | Вадим Буренков | Общие вопросы Delphi | 10 | 01.07.2009 22:47 |
Проверить создан ли уже массив | slips | Общие вопросы C/C++ | 2 | 19.04.2009 18:31 |
С помощью какого языка был создан windows? | Pilmaks | Свободное общение | 20 | 24.10.2008 11:18 |