Size: a a a

2020 February 08

GB

George Bakhtadze in Delphi & Lazarus
хотя при нормальном завершении программы таки должен
источник

KB

Kit Bayun in Delphi & Lazarus
George Bakhtadze
и когда по-твоему он должен освободиться?
да пофиг когда, лишь бы утечек не было
источник

GB

George Bakhtadze in Delphi & Lazarus
Kit Bayun
в глобальном модуле я пишу один раз:
KvxListsStyles := TKvxListsStyles.Create;
тип KvxListsStyles какой?
источник

GB

George Bakhtadze in Delphi & Lazarus
видимо класс, а должен быть интерфейс
источник

KB

Kit Bayun in Delphi & Lazarus
George Bakhtadze
тип KvxListsStyles какой?
см большую картинку - самая последняя строка
источник

KB

Kit Bayun in Delphi & Lazarus
var
 KvxListsStyles: IKvxListsStyles;
источник

GB

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

KB

Kit Bayun in Delphi & Lazarus
это как?
источник

KB

Kit Bayun in Delphi & Lazarus
var
 KvxListsStyles: IKvxListsStyles;


...
KvxListsStyles := TKvxListsStyles.Create;

это правильно или нет?
источник

GB

George Bakhtadze in Delphi & Lazarus
ну внутри метода объяви, создай и вызови метод
источник

GB

George Bakhtadze in Delphi & Lazarus
Kit Bayun
var
 KvxListsStyles: IKvxListsStyles;


...
KvxListsStyles := TKvxListsStyles.Create;

это правильно или нет?
вроде да
источник

KB

Kit Bayun in Delphi & Lazarus
вызвал внутри метода

procedure TUniMainModule.GetUserParams;
var
 KvxListsStyles: IKvxListsStyles;
begin
 if UniConnection1.Connected then
 begin

   KvxListsStyles := TKvxListsStyles.Create;
 end;
end;
всё равно утечки памяти
источник

AS

Alexey Shumkin in Delphi & Lazarus
George Bakhtadze
хотя при нормальном завершении программы таки должен
Чота я не уверен... Хотя в сообщении об утечках нет самого styleslist
источник

GB

George Bakhtadze in Delphi & Lazarus
Kit Bayun
вызвал внутри метода

procedure TUniMainModule.GetUserParams;
var
 KvxListsStyles: IKvxListsStyles;
begin
 if UniConnection1.Connected then
 begin

   KvxListsStyles := TKvxListsStyles.Create;
 end;
end;
всё равно утечки памяти
деструктор-то вызвался?
источник

KB

Kit Bayun in Delphi & Lazarus
источник

KB

Kit Bayun in Delphi & Lazarus
George Bakhtadze
деструктор-то вызвался?
нет, бряка не сработала
источник

GB

George Bakhtadze in Delphi & Lazarus
а условие создания сработало?
источник

GB

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

SB

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

SB

Sergey Bodrov in Delphi & Lazarus
Функция нужна как read-only аналог переменной
источник