Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2015, 10:42   #1
Oleg_SS
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 75
По умолчанию Ошибка при локализации проекта

Для локализации проекта использую стандартные средства delphi, а для переключения языка использую reinit.pas.
Все замечательно работает, пока не начал использовать ActionManadger.
При переключении языка возникает утечка памяти. Кто-нибудь сталкивался с подобным?

Код:
unit Unit1;

interface

uses reinit,
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,
  Vcl.PlatformDefaultStyleActnCtrls, System.Actions, Vcl.ActnList, Vcl.ActnMan;

type
  TForm1 = class(TForm)
    ComboBox1: TComboBox;
    ActionManager1: TActionManager;
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

Const L: Array[0..1] of Integer = (LANG_RUSSIAN, LANG_ENGLISH);

implementation

{$R *.dfm}

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
   if LoadNewResourceModule(L[ComboBox1.ItemIndex]) <> 0 then
      ReinitializeForms;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   // Проверка утечки памяти
   ReportMemoryLeaksOnShutdown := True;

end;

end
.
Oleg_SS вне форума Ответить с цитированием
Старый 15.12.2015, 10:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А как выглядит ReinitializeForms?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.12.2015, 12:19   #3
Oleg_SS
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А как выглядит ReinitializeForms?
это не форма это процедура в reinit.pas Найдено на просторах инета.
Oleg_SS вне форума Ответить с цитированием
Старый 15.12.2015, 12:22   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
ReinitializeForms
В ней и смотри что не освобождается. Возможно есть процедура для освобождения. Если нет - сам сделай
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.12.2015, 12:43   #5
Oleg_SS
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В ней и смотри что не освобождается. Возможно есть процедура для освобождения. Если нет - сам сделай
да все глаза уже просмотрел. Поэтому и пишу. Проблема возникает только если на форму кинуть ActionManager.

Вот весь проектTest.zip

Последний раз редактировалось Stilet; 15.12.2015 в 14:24.
Oleg_SS вне форума Ответить с цитированием
Старый 15.12.2015, 14:28   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
lstrcpy(P, LocaleName); // Копируем LocaleName в P
А где освобождение Р?
А вообще я бы на твоем месте либо профайлерами типа AQTime воспользовался, либо код начал заремливать и смотреть какие участки перестают утечку давать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.12.2015, 14:40   #7
Oleg_SS
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А где освобождение Р?
А вообще я бы на твоем месте либо профайлерами типа AQTime воспользовался, либо код начал заремливать и смотреть какие участки перестают утечку давать.
функция LoadNewResourceModule не оставляет ни каких следов.
Все крутиться вокруг ReinitializeForms
Именно после ее вызова остается занятая память.
Oleg_SS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при компиляции проекта MihailovVladimir Visual C++ 2 11.04.2012 21:43
ошибка при запуске проекта ! denes Общие вопросы C/C++ 3 26.04.2010 13:51
Ошибка при сборке проекта в QT. JoberLord Qt и кроссплатформенное программирование С/С++ 4 17.04.2010 16:33
Ошибка при компиляции проекта -=Virus=- Помощь студентам 3 12.10.2009 09:37
ошибка при открытии проекта KiSH333 БД в Delphi 2 08.09.2008 12:47