Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 246
1

Уничтожение динамически созданного TLabel

21.04.2019, 20:02. Показов 2031. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день,
После динамического создания экземпляра TLabel
Delphi
1
L[G[12]]:=TLabel.Create(Self);
мне нужно этот экземпляр уничтожить за ненадобностью.
Подскажите пожалуйста как ?

Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2019, 20:02
Ответы с готовыми решениями:

Динамически созданные TLabel's и onClick
Здравствуйте, помогите пожалуйста с решением задачи. Есть дочерняя TForm2, на ней одна кнопка. При...

Связь между динамически созданными компонентами (TImage и TLabel)
Здравствуйте! У меня возникла проблема при попытке связи динамически созданных TImage и TLabel....

Не инициируется событие FormMouseDown внутри площади динамически создаваемого объекта TLabel
Не инициируется событие FormMouseDown внутри площади динамически создаваемого объекта TLabel....

Удаление динамически созданного объекта
Код создания объекта: procedure TForm1.Book_Create(Sender: TObject); begin img :=...

16
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
21.04.2019, 20:06 2
Лучший ответ Сообщение было отмечено hsimpson как решение

Решение

L[G[12]].Free;
1
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 246
21.04.2019, 20:18  [ТС] 3
Спасибо, добрый человек.
0
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 246
02.05.2019, 00:06  [ТС] 4
Добрый день.
Всех с майскими праздниками.

У меня маленькая вводная к главному вопросу этой темы: мне нужно уничтожить экземпляр Tlabel только в том случае, если он был создан ранее.
Подскажите, как проверить: существует нужный экземпляр или нет?

Спасибо.
0
Злостный нарушитель
9514 / 5158 / 1175
Регистрация: 12.03.2015
Сообщений: 24,315
02.05.2019, 00:15 5
Цитата Сообщение от hsimpson Посмотреть сообщение
мне нужно уничтожить экземпляр Tlabel только в том случае, если он был создан ранее.
Зависит от задачи.
Цитата Сообщение от hsimpson Посмотреть сообщение
Подскажите, как проверить: существует нужный экземпляр или нет?
В общем случае - никак. Почему тебе надо это проверять и что за объект?
1
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 246
02.05.2019, 00:51  [ТС] 6
Я рисую графики в отчете. Числовые значения визуализирую с помощью динамического создания экземпляров Tlabel.
Когда графики перересовываю - остаются старые надписи.
Вот их я и хочу уничтожать.
Раз легкого решения нет - буду шаманить. Создам переменную и буду в ней хранить факт существования нужного экземпляра.
0
Злостный нарушитель
9514 / 5158 / 1175
Регистрация: 12.03.2015
Сообщений: 24,315
02.05.2019, 00:58 7
Цитата Сообщение от hsimpson Посмотреть сообщение
Я рисую графики в отчете.
Ну так рисуй и текст вместо того, чтоб показывать его в TLabel.
1
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 246
02.05.2019, 01:02  [ТС] 8
Прошу обьяснить - это как?
На convase вырисовывать по буквам?
0
Злостный нарушитель
9514 / 5158 / 1175
Регистрация: 12.03.2015
Сообщений: 24,315
02.05.2019, 02:32 9
Лучший ответ Сообщение было отмечено hsimpson как решение

Решение

Цитата Сообщение от hsimpson Посмотреть сообщение
На convase вырисовывать по буквам?
Ога. Прям на конвасе.

Уничтожение динамически созданного TLabel
1
35 / 29 / 15
Регистрация: 20.11.2010
Сообщений: 481
02.05.2019, 10:12 10
Цитата Сообщение от Verevkin Посмотреть сообщение
В общем случае - никак
Assigned() не поможет?
1
Злостный нарушитель
9514 / 5158 / 1175
Регистрация: 12.03.2015
Сообщений: 24,315
02.05.2019, 13:01 11
Цитата Сообщение от Мирзали Посмотреть сообщение
Assigned() не поможет?
Нет. Эта функция тупо проверяет, равен ли указатель нулю или нет.
1
884 / 404 / 174
Регистрация: 20.10.2016
Сообщений: 1,828
02.05.2019, 13:31 12
Assigned() спасёт при следующих условиях:
1) изначально (до момента создания) объект гарантированно инициализируется значением nil;
2) объект удаляется через FreeAndNil или после выполнения Free указателю на объект присваивается nil;
3) если объект удаляется через другой указатель (например, внутри процедуры, где указатель на объект является аргументом), то assigned работать не будет.

Ну и надо понимать, что переменная с объектом на самом деле является указателем, а не действительным объектом.
1
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 246
02.05.2019, 13:42  [ТС] 13
Добрый день.
ПРОШУ НЕ ОБРАЩАТЬ ВНИМАНИЯ НА ТУ ХЕРНЮ, КОТОРУЮ Я ШПАРИЛ ПРОШЕДШЕЙ НОЧЬЮ.
Проклятый первомайский алкоголь временно лишил меня возможности думать.
Извиняюсь.
‐----------
По теме: оказалось, что не важно, создавался ли ранее тот экземпляр, который мне нужно было уничтожить.
Решение моей проблемки выглядит вот так:

А(0).free;
A(0):=nil;

-----------

Всем спасибо.
0
Злостный нарушитель
9514 / 5158 / 1175
Регистрация: 12.03.2015
Сообщений: 24,315
02.05.2019, 13:47 14
Цитата Сообщение от hsimpson Посмотреть сообщение
ПРОШУ НЕ ОБРАЩАТЬ ВНИМАНИЯ НА ТУ ХЕРНЮ, КОТОРУЮ Я ШПАРИЛ ПРОШЕДШЕЙ НОЧЬЮ.
Проклятый первомайский алкоголь временно лишил меня возможности думать.
Извиняюсь.
Да нам, собственно, пофигу. Даже если ты и правда продолжишь лепить динамические TLabel вместо простого рисования текста на TCanvas.
Только не показывай свою вундервафлю детям и беременным женщинам.
0
mac1eod
02.05.2019, 13:56
  #15

Не по теме:

Цитата Сообщение от Verevkin Посмотреть сообщение
Только не показывай свою вундервафлю детям и беременным женщинам
за вами записывать можно)

0
Verevkin
02.05.2019, 14:07
  #16

Не по теме:

Цитата Сообщение от mac1eod Посмотреть сообщение
за вами записывать можно)
Нужно! :good:

0
1 / 1 / 3
Регистрация: 21.05.2012
Сообщений: 246
02.05.2019, 14:25  [ТС] 17
Спасибо за советы по теме, а какому контмнгенту и что показывать - разберусь.
0
02.05.2019, 14:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.05.2019, 14:25
Помогаю со студенческими работами здесь

Очистка динамически созданного Image
Не знаю как реализовать функцию очистки динамически созданного Image Создаю Image в цикле, имя у...

Процедура для динамически созданного объекта
Всем привет! Проблема в следующем: динамически создаю кнопки и записываю их в массив через цикл...

Данные из динамически созданного TEdit в массив
for i:=1 to n do begin with TEdit.Create(Form1) do begin Parent := Form1; ...

Drag and drop динамически созданного объекта
Есть объект: TMyObjects = class (TGraphicControl) property OnDragDrop; property...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru