![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
Здравствуйте!
Всем известно, что перед работой со StringList'ом его необходимо создать (List:=TStringlist.Create). А как проверить, что Stringlist был создан и с ним можно работать? |
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 65 Всего: 372 |
? Добавлено @ 23:03 http://forum.vingrad.ru/forum/topic-209296...0%BC%D0%B0.html Какая разница? Что форма, что StringList... Это сообщение отредактировал(а) THandle - 10.5.2008, 23:05 |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
Poseidon,
хм... может у него глобальная переменная и работа с нескольких обработчиков, которые независимы друг от друга, поэтому и трубуется проверка... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| ama_kid |
|
||||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 15 Всего: 95 |
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
||||
|
|||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Я конечно извеняюсь, но твой любимый метод - извращение. Создавать специально ошибку и потом ее отлавливать...
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 15 Всего: 95 |
совершенно верно, это мой любимый извращенный метод
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
...который может привести к непредсказуемым последствиям. проверка на assigned не всегда применим. это относится к локальным и неинициализироваемым глобальным переменным. глобальные переменные - зло) -------------------- There are always someone smarter than you... |
|||
|
||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 5 Всего: 60 |
Автору совет не используй все в глобальных пользуйся
public или private сделай функцию проверки создан ли Stringlist тем же самым assigned не знаю я не когда не проверяю создан ли Stringlist просто тупо использую ибо всегда создается а при необходимости уничтожаю. -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| pseud |
|
||||||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
простите в OnCreate какого класса? Добавлено через 5 минут и 32 секунды
пример
к сожалению StringList1 не создастся и StringList1.Add вызовет Exception никто не знает в каком месте случится Исключительная ситуация. Добавлено через 7 минут и 2 секунды надо уничтожать не при необходимости, а обязательно. и если это локальная переменная (свойство) то желательно в деструкторе класса (если нет другой необходимости) -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
||||||
|
|||||||
| MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
В зависимости от некоторых данных создается и загружается либо Форма 1, либо Форма 2. В форме 1 создается TStringlist, который заполняется данными. Форма 2 может создаваться как из формы 1, так и независимо (без создания Формы 1).
В зависимости от того, есть ли данные в StringList'е, форма 2 читает данные из него, либо выполняет другие действия. Сейчас это реализовано с помощью try... except, что лично мне кажется пальцем, которым затыкают дырку, вместо того, чтобы залатать ее заплаткой. Лучший вариант по моему скромному мнению Assigned, всем спасибо за помощь! Это сообщение отредактировал(а) MadCoder - 12.5.2008, 10:05 |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
TForm
Вообще, как уже было сказано, глобальные переменные - не хороший тон. Но если все же уже созданы, то создаем Stringlist в TForm.OnCreate, освобождаем в TForm.OnDestroy. Да, может получится так, что память будет занята бестолку. Но зато мы не получим ошибок. А вообще я не представляю себе ситуацию, в которой необходимо проверять создан-ли список или нет. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| pseud |
|
||||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
думаю правильнее будет сказать: создаем в конструкторе, освобождаем в деструкторе не всяк класс имеет OnCreate/OnDestroy
я ее простовато но описал в предыдущем своем посте -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
||||
|
|||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
В предыдущем твоем посте ошибка в самом коде. Написал бы так:
ничего бы не было. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |