powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Освобождение памяти TList
25 сообщений из 32, страница 1 из 2
Освобождение памяти TList
    #39837218
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В delphi есть модуль DesignEditors , в котором в секции implementation объявлены несколько переменных
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
var
  PropertyClassList: TList;
  PropertyMapperList: TList = nil;

var
  ComponentGuidelinesList: TGuidelineBucketList;

var
  SelectionEditorDefinitionList: TSelectionEditorDefinitionList;

var
  GroupNotifyList: TList;
  EditorGroupList: TBits;



Все эти объекты создаются в различных процедурах, например
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
procedure RegisterSelectionEditor(AClass: TClass; AEditor: TSelectionEditorClass);
begin
  if not Assigned(SelectionEditorDefinitionList) then
    SelectionEditorDefinitionList := TSelectionEditorDefinitionList.Create;
  SelectionEditorDefinitionList.Add(TSelectionEditorDefinition.Create(AClass, AEditor));
end;

procedure RegisterPropertyMapper(Mapper: TPropertyMapperFunc);
var
  P: PPropertyMapperRec;
begin
  if PropertyMapperList = nil then
    PropertyMapperList := TList.Create;
  New(P);
  P^.Group := CurrentGroup;
  P^.Mapper := Mapper;
  PropertyMapperList.Insert(0, P);
end;



Но нигде не уничтожаются. Из-за чего FastMM ругается на утечку.
Подскажите, как с этим бороться ?
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837229
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочешь пофиксить Rad Studio?
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837234
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, хочу понять, как избавиться от ошибки
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837236
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetrashkevichНет, хочу понять, как избавиться от ошибкизабей
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837238
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Она же только в IDE проявляется.. А там все пакеты ставятся без уведомления об утечках и в релиз-конфигурации
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837239
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X-CiteОна же только в IDE проявляется.. А там все пакеты ставятся без уведомления об утечках и в релиз-конфигурации
Почему только в IDE ?
DesignEditors используется у меня в программе.
Может быть просто скопировать этот модуль в свою папку и в finalization уничтожать эти списки ?
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837240
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetrashkevichПочему только в IDE ?Потому, что этот файл часть OTAPI и не предназначен ни для чего другого
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837241
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_niggerПотому, что этот файл часть OTAPI и не предназначен ни для чего другого
Константин, если у меня в программе есть Инспектор, и есть "Девчачьи" редакторы свойств, почему мне нельзя использовать DesignEditors ?
Для чего тогда нужен исходник, если его нельзя использовать ?
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837242
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам модуль предназначен для использования только при разработке расширений к IDE

Но нужный код можно перенести к себе (а может и нельзя, лицензия же)...
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837280
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetrashkevichКонстантин, если у меня в программе есть Инспектор, и есть "Девчачьи" редакторы свойств, почему мне нельзя использовать DesignEditors ?Как это взаимосвязано? Ещё раз, этот модуль используется средой для предоставления OTAPI и, соответственно, за эти объекты отвечает Rad Studio. И все лики, глюки и т.д. (если есть) на её совести. Разработчики используют интерфейсные потроха для реализации своих design-time пакетов. В рантайм этот модуль никуда не цепляется и не должен.
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837289
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_niggerКак это взаимосвязано?
Нужен мне в программе компонент TcxPageControl, вместе с редактором !!!
Подключаю модуль cxPCReg.
И там первой строчкой написано
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
unit cxPCReg;

{$I cxVer.inc}

interface

procedure Register;

implementation

uses
  DesignEditors, DesignIntf, DesignMenus, Graphics,
  Classes, Forms, SysUtils, TypInfo, dxCore, cxPC, cxPCConsts, cxPCPaintersFactory,
  cxPCGoDialog, dxCoreReg, cxLibraryReg, cxPropEditors, cxClasses;
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837291
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetrashkevichПодключаю модуль cxPCReg.

Так все логично.. Это модуль входит в design-пакет который устанавливается в IDE.
Он больше нигде не используется.
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837307
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X-CiteТак все логично.. Это модуль входит в design-пакет который устанавливается в IDE.
Он больше нигде не используется.
Это где то прописано жирными буквами, что его нельзя использовать в Run-Time ?
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837323
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petrashkevich,

Это видно в 3 местах
1)
Код: pascal
1.
2.
uses
  DesignEditors, DesignIntf,


2)
Код: pascal
1.
procedure Register;


3)
Код: pascal
1.
2.
3.
4.
5.
6.
package dclcxPageControlRS26;
...
{$DESIGNONLY}
...
contains
  cxPCReg;



Все что лежит в ToolsApi (стандартное) - это для использования в IDE.
А девки, просто не парились и не разносили отдельно. Какая разница как эти модули лежат, раздельно или в куче, если они все равно корректно разнесены по правильным пакетам...
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837345
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X-CiteВсе что лежит в ToolsApi (стандартное) - это для использования в IDE.
Где сказано что ToolsAPI нельзя использовать в Run-Time ?
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837349
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837357
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetrashkevichГде сказано что ToolsAPI нельзя использовать в Run-Time ?
Насколько я помню - в лицензии.
Кроме того: а) у них нет исходников (они неполные), б) они меняются от версии к версии без обратной совместимости, т.е. это лучший способ заиметь много проблем при переходе на новую версию среды.
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837371
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X-Cite http://docwiki.embarcadero.com/RADStudio/Rio/en/Extending_the_IDE_Using_the_Tools_API
Где там написано то нельзя использовать в Rnu-Time ?
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837378
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там написано что их используют для разработки расширений к IDE.

Этого достаточно чтобы не использовать их там, где они не предназначены.
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837393
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X-CiteТам написано что их используют для разработки расширений к IDE.

Этого достаточно чтобы не использовать их там, где они не предназначены.
Всё правильно, для разработки расширений IDE - (Интегрированная среда разработки).
Именно для этого я ToolsAPI и использую.
В моей программе есть Интегрированная среда разработки , куда я подключаю компоненты и их редакторы.
Запрещено создавать IDE ? Или запрещено подключать сторонние компоненты ? А если компоненты лезут к DesignEditors ?

Вместо того, чтобы помочь по теме топика, мы обсуждаем какие-то другие вопросы.
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837396
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы можете делать все что хотите.
Но использование модулей из ToolsAPI предполагает их использование только при написании расширений к IDE.
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837402
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чтобы использовать модули DesignIntf и DesignEditors с Delphi, вам необходимо добавить –LUDesignIDEк параметрам компилятора:
Project Options for Project1.exe
Даже параметр специальный для этого придумали, чтобы можно было использовать в своём проекте.
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837579
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetrashkevichДаже параметр специальный для этого придумали, чтобы можно было использовать в своём проекте.Рекомендую прочитать страницу по линку очень внимательно. Начиная с первого предложения.
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837592
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetrashkevichИли запрещено подключать сторонние компоненты ?Например наши - запрещено. Конечно если это не поделка для личного использования.
...
Рейтинг: 0 / 0
Освобождение памяти TList
    #39837633
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_niggerНапример наши - запрещено. Конечно если это не поделка для личного использования.
А есть мысли по борьбе с утечкой ?
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Освобождение памяти TList
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]