Size: a a a

2020 February 08

GB

George Bakhtadze in Delphi & Lazarus
Sergey Bodrov
Функция нужна как read-only аналог переменной
property есть же. хотя в дельфи по-моему нет
источник

KB

Kit Bayun in Delphi & Lazarus
странно, но конструктор класса не выполнился - бряка не сработала

constructor TKvxListsStyles.create;
begin
 FillTypesStyles;
 FillRegionsStyles;
end;
источник

SB

Sergey Bodrov in Delphi & Lazarus
Вроде можно и константу зарядить через Create, Но это некошерно
источник

GB

George Bakhtadze in Delphi & Lazarus
так либо условие не выполнилось, либо дебагер не работает
источник

KB

Kit Bayun in Delphi & Lazarus
George Bakhtadze
может и не создавалось ниче
тогда откуда утечки?
источник

GB

George Bakhtadze in Delphi & Lazarus
Kit Bayun
тогда откуда утечки?
мало ли. мы сейчас только один метод рассматриваем :)
источник

AS

Alexey Shumkin in Delphi & Lazarus
Kit Bayun
странно, но конструктор класса не выполнился - бряка не сработала

constructor TKvxListsStyles.create;
begin
 FillTypesStyles;
 FillRegionsStyles;
end;
inherited забыл
источник

KB

Kit Bayun in Delphi & Lazarus
Sergey Bodrov
В данном случае нет необходимости в интерфейсе. В секции initialization делаем Create(), в секции finalization делаем Free(). Саму переменную желательно перенести внутрь секции implementation чтобы снаружи ее не испортили. А наружу в секцию interface поместить функцию, возвращающую эту переменную
Специфика приложения UniGUI такова, что Destroy модуля может выполниться при перезагруке страницы, т.е. после создания модуля, я уже пытался... не знаю как это объяснить
источник

AS

Alexey Shumkin in Delphi & Lazarus
Kit Bayun
тогда откуда утечки?
Поставь полный fastmm, и вопрос отпадёт
источник

KB

Kit Bayun in Delphi & Lazarus
Alexey Shumkin
inherited забыл
constructor create;
    destructor Destroy;
 end;

а здесь нужен override?
источник

SB

Sergey Bodrov in Delphi & Lazarus
Kit Bayun
Специфика приложения UniGUI такова, что Destroy модуля может выполниться при перезагруке страницы, т.е. после создания модуля, я уже пытался... не знаю как это объяснить
Может тогда просто забить на утечки при закрытии?
источник

GB

George Bakhtadze in Delphi & Lazarus
Kit Bayun
Специфика приложения UniGUI такова, что Destroy модуля может выполниться при перезагруке страницы, т.е. после создания модуля, я уже пытался... не знаю как это объяснить
что такое destroy модуля? тогда глобально объявлять скорее всего неправильно
источник

KB

Kit Bayun in Delphi & Lazarus
George Bakhtadze
что такое destroy модуля? тогда глобально объявлять скорее всего неправильно
я имею ввиду уничтожение главного UniMainModule
источник

KB

Kit Bayun in Delphi & Lazarus
Sergey Bodrov
Может тогда просто забить на утечки при закрытии?
нет, нельзя, утечки ведь не при закрытии, а при работе приложения, веб-приложения нацелены на постоянную работу, в итоге переполнение памяти и кирдык
источник

KB

Kit Bayun in Delphi & Lazarus
George Bakhtadze
так либо условие не выполнилось, либо дебагер не работает
я стормозил... 2 минуты
источник

KB

Kit Bayun in Delphi & Lazarus
ещё раз перепроверил бряки в create и в Destroy: create сработала, а в Destroy - нет :(
источник

SB

Sergey Bodrov in Delphi & Lazarus
Смотри стек вызовов Create, откуда оно приходит. По идее один раз должно приходить.
источник

SB

Sergey Bodrov in Delphi & Lazarus
Если Create один раз приходит за время жизни программы, то на Destroy можно и забить до лучших времён.
источник

SB

Sergey Bodrov in Delphi & Lazarus
Либо изучать дебаггером, как закрытие происходит, что кого вызывает
источник

SB

Sergey Bodrov in Delphi & Lazarus
По стандарту языка секция finalization в любом случае должна выполняться
источник