Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
 
DarkTinker23
0 / 0 / 0
Регистрация: 17.11.2016
Сообщений: 15
#1

Не работает изменение , удаление динамических компонентов - Delphi

01.06.2017, 23:21. Просмотров 316. Ответов 23
Метки нет (Все метки)

Здравствуйте люди , после создание компонентов , их нельзя удалить и изменить.
Я пробовал использовать .free и .destroy - обе функции не действуют.
Как я понимаю после работы функции .free объекты должны удалятся и исчезать но в данном случае объекту пофигу (скриншоты предоставляю)
Не работает изменение , удаление динамических компонентов
Как мы видим на скриншоте ,есть заполненный массив pan.
Не работает изменение , удаление динамических компонентов
Но после работы функции .free , первая ячейка массив pan не удалилась.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2017, 23:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает изменение , удаление динамических компонентов (Delphi):

Удаление динамических компонентов - Delphi
ребят, помогите, плиз! Суть вот в чем, динамически создаются шэйпы по клику попупменю на кнопке, но вот с какой проблемой не могу...

Обработка динамических компонентов - Delphi
Такая ситуация: в идеале я должен добавлять столбики в созданные таблицы, но на деле он даже запустить не дает, так как пишет что объекта...

Создание динамических компонентов - Delphi
procedure ToolClick(Sender: TObject); var ToolRegistry: array of TTool; ToolBtn: array of TBitBtn; procedure...

Массив динамических компонентов - Delphi
Здрасте, создал массив динамических компонентов var Pict:array of TImage; CountPict: Integer; ... implementation ... ...

5 динамических компонентов подряд = ошибка - Delphi
Type TItem = record img:TDBImage; buy:TButton; name,aboute,price:TDBText; Width,height:integer; end; var F_Main:...

Stack overflow при создании динамических компонентов - Delphi
Вот код procedure TForm1.Button5Click(Sender: TObject); begin createtelnet; edit4.Text:=inttostr(iptel); ...

23
krapotkin
2776 / 2652 / 675
Регистрация: 14.04.2014
Сообщений: 12,728
Записей в блоге: 7
02.06.2017, 14:16 #16
деструктор финализирует динамические массивы и строки, сдает память менеджеру памяти,
у компонентов вызывает механизмы Notify, где отцепляется от Parent и Owner
0
DarkTinker23
0 / 0 / 0
Регистрация: 17.11.2016
Сообщений: 15
02.06.2017, 16:00  [ТС] #17
Цитата Сообщение от krapotkin Посмотреть сообщение
вообще-то это первое с чего нужно было начинать. Там другая концепция. И этот вопрос тоже уже обсосан со всех сторон
читайте теорию
http://yaroslavbrovin.ru/object_life...indows_osx-ru/
http://yaroslavbrovin.ru/object_life...ndroid_ios-ru/


еще раз. никакие ссылки и данные в памяти не изменились просто из-за вызова деструктора.
вот если немного поработать чтобы память засралась, и потом обратиться к этому месту, там возможно уже будет что-то другое
Огромное спасибо за статейки , но у меня все тот же вопрос.
Все в nill , но все видимо - этот момент не уточняется

Добавлено через 5 минут
Цитата Сообщение от krapotkin Посмотреть сообщение
деструктор финализирует динамические массивы и строки, сдает память менеджеру памяти,
у компонентов вызывает механизмы Notify, где отцепляется от Parent и Owner
Ах да название вопроса - изменение , удаление

Я еще не могу разобраться с изменением компонентов в ячейках.
Изменения в визуальной части , например шрифт и тд.

Как я понимаю , нужно обновить форму , но как?
0
DenNik
Непрофессионал
1579 / 1113 / 174
Регистрация: 26.07.2011
Сообщений: 6,757
02.06.2017, 16:18 #18
Цитата Сообщение от DarkTinker23 Посмотреть сообщение
Изменения в визуальной части , например шрифт и тд.
какие проблемы?
Delphi
1
arr[1].Font.Name:= 'Verdana';
0
DarkTinker23
0 / 0 / 0
Регистрация: 17.11.2016
Сообщений: 15
02.06.2017, 16:46  [ТС] #19
Цитата Сообщение от DenNik Посмотреть сообщение
какие проблемы?
Delphi
1
arr[1].Font.Name:= 'Verdana';
Название: 213215.PNG
Просмотров: 15

Размер: 575 байт
Не работает изменение , удаление динамических компонентов
Название: 51251.PNG
Просмотров: 15

Размер: 507 байт

Название меняется но например размер-неменяется
0
krapotkin
2776 / 2652 / 675
Регистрация: 14.04.2014
Сообщений: 12,728
Записей в блоге: 7
02.06.2017, 16:52 #20
StyleElements ?

Добавлено через 41 секунду
Цитата Сообщение от DarkTinker23 Посмотреть сообщение
Все в nill , но все видимо - этот момент не уточняется
где код?
0
DarkTinker23
0 / 0 / 0
Регистрация: 17.11.2016
Сообщений: 15
02.06.2017, 17:05  [ТС] #21
Цитата Сообщение от DarkTinker23 Посмотреть сообщение
Упс , в этом и проблема у меня не VCL , у меня Multi-Device (FireMonkey);

И да Pan[I]-Очищается если смотреть по коду
Вложение 839954
Вложение 839955

Но в визуальной части ничего не меняется .
Не работает изменение , удаление динамических компонентов
Не работает изменение , удаление динамических компонентов
0
DarkTinker23
0 / 0 / 0
Регистрация: 17.11.2016
Сообщений: 15
02.06.2017, 17:42  [ТС] #22
Цитата Сообщение от krapotkin Посмотреть сообщение
StyleElements ?

Добавлено через 41 секунду

где код?

Цитата Сообщение от DarkTinker23 Посмотреть сообщение
Перепутал записи
0
krapotkin
2776 / 2652 / 675
Регистрация: 14.04.2014
Сообщений: 12,728
Записей в блоге: 7
02.06.2017, 21:12 #23
это не код
это картинки
1
GoodWeather
131 / 130 / 41
Регистрация: 28.02.2017
Сообщений: 764
03.06.2017, 02:09 #24
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от DenNik Посмотреть сообщение
нет! после Free я спокойно читаю Caption и он тот же, который был на панели при жизни
Я же выше уже объяснил - память не обнуляется.
Некоторое время по старым (уже не валидным) адресам останутся старые данные, и некоторое время к ним правда можно "обращаться".
Но только пока память не отдадут "кому-то" другому и тот начнёт её инициализировать. Условно говоря - возможно после Free() пару-тройку минут Caption будет старым и без AV, а вот позже станет меняться и до AV рукой подать.

А так да, надо весь код смотреть, как создаёте, как используете, как удаляете. Сделайте что ли пустой тестовый проект, повторяется ли на нём.
1
03.06.2017, 02:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2017, 02:09
Привет! Вот еще темы с ответами:

Нет связи консольного приложения с событиям динамических компонентов - Delphi
Люди как связать событие с компонентом ? program Project1; {$APPTYPE CONSOLE} {$R *.res} uses Winapi.Windows,...

Удаление динамических объектов / полная очистка формы - Delphi
Уважаемые, подскажите: На форме динамически создаются несколько десятков объектов : кнопки, чекбоксы, мемы всякие и проч Как этот...

Изменение размеров компонентов - Delphi
На форме есть пару компонентов (RichEdit, WebBrauser, Panel) Нужно сделать чтобы при измении формы (растягивании, развёртывании и т.п)...

Удаление компонентов - Delphi
Доброго времени суток, такая проблема, как удалить программно все созданные тоже программно компоненты? Пробую на кнопку так ...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru