Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2010, 02:00   #1
StrToFloat
Delphi $ Drums :)
 
Регистрация: 08.12.2009
Сообщений: 7
По умолчанию Обратится к объекту, созданному динамически

Здравствуйте! Я самостоятельно изучаю дэлфи и у меня возникла такая проблема.

Каждый раз при нажатии кнопки создается объект.

Например, так:

Код:
begin
Edit:=TEdit.Create(Form1);
Edit.Parent:=Form1;
Edit.Name:='Edit'+IntToStr(i);
Inc(i);
End;
И допустим у меня создалась куча эдитов.

Далее мне нужно уничтожить, скажем, эдит с именем Edit2.

Как мне обратиться к нему?
Цитата:
"Проблемы никогда нельзя разрешить с тем же образом мыслей, который их породил".
Альберт Эйнштейн.

Последний раз редактировалось Stilet; 19.01.2010 в 09:06.
StrToFloat вне форума Ответить с цитированием
Старый 19.01.2010, 02:10   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
Form1.FindComponent('Edit2').Free;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.01.2010, 02:27   #3
StrToFloat
Delphi $ Drums :)
 
Регистрация: 08.12.2009
Сообщений: 7
По умолчанию

Огромное спасибо!
Цитата:
"Проблемы никогда нельзя разрешить с тем же образом мыслей, который их породил".
Альберт Эйнштейн.
StrToFloat вне форума Ответить с цитированием
Старый 19.01.2010, 09:08   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не корректный код.
Надежнее так:
Код:
var c:TComponent;
begin
 c:=FindComponent('Edit2');
 if c<>nil then c.Free;
end.
А вдруг такой уже освобожден, тогда на AV нарвешся.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.01.2010, 17:10   #5
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

тогда
Код:
FreeAndNil(c);
Alter вне форума Ответить с цитированием
Старый 19.01.2010, 17:16   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Alter
В моем случае не обязательно. C то локальная переменная
Хотя конечно это не будет лишне.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.01.2010, 18:53   #7
StrToFloat
Delphi $ Drums :)
 
Регистрация: 08.12.2009
Сообщений: 7
По умолчанию

Эх, если бы у меня в голове были все эти команды, многие задачи я решал бы проще, а не изобретал бы велосипед, который уже люди изобрели до меня

Спасибо!
Цитата:
"Проблемы никогда нельзя разрешить с тем же образом мыслей, который их породил".
Альберт Эйнштейн.
StrToFloat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка доступа к созданному файлу Siluet Общие вопросы Delphi 11 09.11.2009 19:49
Как обратится к глобальной переменной из модуля tavrocotaps Общие вопросы Delphi 2 10.06.2009 11:08
Вот! Тот макрос, который заставил обратится меня на этот форум! Дмитрий Фукс Microsoft Office Excel 6 10.04.2009 10:29
как обратится HrenoV Общие вопросы C/C++ 1 16.02.2007 18:05