Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi 7 и FastMM / 25 сообщений из 31, страница 1 из 2
14.11.2017, 05:56:44
    #39552596
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
Не могу запустить, получаю сообщение:
Не возможно установить FastMM4 - Память уже была выделена
---------------------------
FastMM4 невозможно установить когда память уже была выделена стандартным менеджером памяти.

FastMM4.pas ДОЛЖЕН быть первым модулем в вашем файле .dpr файле проекта, иначе память может быть выделена

через стандартный менеджер памяти перед тем как FastMM4 получит контроль.



Если вы используете обработчик исключений типа MadExcept (или любой другой инструмент модифицирующий порядок инициализации модулей),

то перейдите в страницу его конфигурации и убедитесь, что FastMM4.pas модуль инициализируется перед любым другим модулем.


Вроде ничего такого нет, может смотрю не там, подскажите пожалуйста
...
Рейтинг: 0 / 0
14.11.2017, 07:58:44
    #39552613
Andy Mezentsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
Gallemar,

Покажи dpr файл.
...
Рейтинг: 0 / 0
15.11.2017, 04:00:13
    #39553187
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
Andy Mezentsev,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
...
Рейтинг: 0 / 0
15.11.2017, 04:38:44
    #39553189
Лись
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
авторFastMM4.pas ДОЛЖЕН быть первым модулем в вашем файле .dpr файле проекта

какое слово непонятно?
...
Рейтинг: 0 / 0
15.11.2017, 04:56:01
    #39553190
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
Gallemar, лапочка, делай так:

GallemarAndy Mezentsev,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
program Project1;

uses
  FastMM4,
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
...
Рейтинг: 0 / 0
15.11.2017, 05:03:31
    #39553191
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
чччДGallemar, лапочка, делай так:

GallemarAndy Mezentsev,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
program Project1;

uses
  FastMM4,
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Спасибо, уже сделал.
...
Рейтинг: 0 / 0
15.11.2017, 06:42:59
    #39553201
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
А как настроить, чтобы конкретно в коде показывал, в какой строке утечка? Час уже дампы смотрю, я явно её в freeandnil загоняю.
...
Рейтинг: 0 / 0
15.11.2017, 08:14:11
    #39553211
Andy Mezentsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
Gallemar,

1. Скачать программу для визуальной настройки опций FastMM:
http://jedqc.blogspot.ru/2007/07/new-fastmm4-options-interface.html
2. Почитать, например у GunSmoker'а: http://www.gunsmoker.ru/2009/05/blog-post_24.html
3. Смотреть лог.
...
Рейтинг: 0 / 0
15.11.2017, 08:34:05
    #39553221
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
Andy Mezentsev, уже.
Я в логе вижу проблемный кусок:
Текущий дамп памяти из 256 байт начиная с адреса 6E17B3F0:
01 00 00 00 0B 02 00 00 31 34 2E 31 31 2E 32 30 31 37 20 31 35 3A 32 38 3A 34 34 3A 20 73 65 6C
65 63 74 20 65 72 72 6F 72 5F 76 61 6C 75 65 2C 77 61 72 6E 69 6E 67 5F 76 61 6C 75 65 20 66 72
6F 6D 20 69 6D 70 6F 72 74 5F 65 78 63 65 6C 5F 61 64 64 5F 6C 69 6E 65 28 3A 53 45 53 53 49 4F
4E 2C 3A 54 59 50 45 5F 43 4C 41 53 53 49 46 2C 3A 49 44 5F 44 4F 43 48 45 41 44 2C 3A 4E 55 4D
42 45 52 2C 3A 4D 41 53 54 45 52 46 49 45 4C 44 2C 3A 42 41 52 43 4F 44 45 5F 53 45 50 41 52 41
54 4F 52 2C 3A 50 41 43 4B 5F 4B 49 4E 44 2C 3A 41 4C 4C 5F 43 41 52 44 53 2C 3A 41 52 54 49 43
55 4C 2C 3A 42 41 52 43 4F 44 45 2C 3A 43 4F 4D 4D 45 4E 54 2C 3A 43 55 53 54 4F 4D 2C 3A 47 4F
4F 44 5F 44 41 54 45 2C 3A 50 41 43 4B 2C 3A 50 41 43 4B 51 55 41 4E 54 49 54 59 2C 3A 50 52 49
. . . . . . . . 1 4 . 1 1 . 2 0 1 7 1 5 : 2 8 : 4 4 : s e l
e c t e r r o r _ v a l u e , w a r n i n g _ v a l u e f r
o m i m p o r t _ e x c e l _ a d d _ l i n e ( : S E S S I O
N , : T Y P E _ C L A S S I F , : I D _ D O C H E A D , : N U M
B E R , : M A S T E R F I E L D , : B A R C O D E _ S E P A R A
T O R , : P A C K _ K I N D , : A L L _ C A R D S , : A R T I C
U L , : B A R C O D E , : C O M M E N T , : C U S T O M , : G O
O D _ D A T E , : P A C K , : P A C K Q U A N T I T Y , : P R I

--------------------------------2017/11/15 10:28:55--------------------------------
Блок памяти был выделен и не освобожден. Размер: 532

This block was allocated by thread 0x1130, and the stack trace (return addresses) at the time was:
402E70
405279
4052A4
4263BF
426036
425FAA
4F91E8
42AAC7
40514A
75A07C04 [BaseThreadInitThunk]
7793AB8F [Unknown function at RtlInitializeExceptionChain]

Блок в настоящее время используется для объекта класса: AnsiString

Выделенный номер стал: 1964174


В коде это:
List1:=TStringList.Create;
List1.LoadFromFile(Flog);
for t:=1 to List1.count-1 do begin
if Length(List1.Strings[t]) <> 0 then begin
if pos('select error_value',List1.Strings[t] ) =0 then begin
if pos('Выполнили XLS.Clear',List1.Strings[t] ) =0 then begin
if pos(' Выполнили fexe.Free',List1.Strings[t] ) =0 then begin
if pos('Выполнили fexe:= TFileStream.Create(ExcelFileName, fmOpenRead or fmShareDenyNone)',List1.Strings[t] ) =0 then begin
if pos('Выполнили xls.LoadFromStream(fexe,true)',List1.Strings[t] ) =0 then begin
if pos('В каталоге',List1.Strings[t] ) =0 then begin
if pos('не найдены файлы Microsoft Excel (*.xls, *.xlsx)',List1.Strings[t] ) =0 then begin
if pos('Operation aborted',List1.Strings[t] ) =0 then begin
if pos('Access violation at address',List1.Strings[t] ) =0 then begin
n:= copy(List1.Strings[t],0,19);
m:= copy(List1.Strings[t],21,150);
trans3:= TpFIBTransaction.Create(nil);
try
query3:= TpFIBQuery.Create(nil);
try
trans3.DefaultDatabase:=db;
query3.Database:=db;
query3.Transaction:=trans3;
query3.SQL.Clear;
query3.SQL.Add('insert into IMPORT_TRACE (LOG_TIME,LOG,KIND,USER_ID,SECOND_ID) values (:LOG_TIME,:LOG,:KIND,:USER_ID,:SECOND_ID)');
trans3.StartTransaction;
query3.ParamByName('LOG_TIME').aSDateTime:= StrToDateTime(n);
query3.ParamByName('LOG').AsString:= m;
query3.ParamByName('KIND').Value:= Fkind;
query3.ParamByName('USER_ID').Value:= Fuser;
query3.ParamByName('SECOND_ID').Value:=s;
query3.ExecQuery();
trans3.Commit;
finally
freeandnil(trans3);
end;
finally
freeandnil(query3);
end;
DeleteFile (PChar(Flog));
freeandnil(List1);
// freeandnil(n);
// freeandnil(m);
end;
// end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end else


Строки в List1, но я его потом зануляю
...
Рейтинг: 0 / 0
15.11.2017, 08:35:04
    #39553222
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
Извините, вставил как текст, а не как srs
...
Рейтинг: 0 / 0
15.11.2017, 08:51:26
    #39553225
Tactical Nuclear Penguin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
жесть...
...
Рейтинг: 0 / 0
15.11.2017, 08:56:53
    #39553231
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
Tactical Nuclear Penguin, я не волшебник, а только учусь
...
Рейтинг: 0 / 0
15.11.2017, 09:05:32
    #39553236
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
Gallemar,

закинь куда-нибудь пример файла, который ты разбираешь. Поясни, что там за магия такая с ним?
...
Рейтинг: 0 / 0
15.11.2017, 09:17:14
    #39553244
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
wadman, https://yadi.sk/d/Oxmkt2IW3PhyAJ - тут pas проекта.
Какая проблема - после запуска начинает понемногу утекать и за сутки вылазит за предел 2Гб и вылетает.
Вооружившись FastMM получил дампы ошибок, где по содержимому понял, что беда в блоке, указанном выше - он разбирает из файла строки, отбрасывает мусор, остальное оборачивает в запросы и в цикле заливает в базу. Сам файл:
15.11.2017 12:48:32: select error_value,warning_value from import_excel_add_line(:SESSION,:TYPE_CLASSIF,:ID_DOCHEAD,:NUMBER,:MASTERFIELD,:BARCODE_SEPARATOR,:PACK_KIND,:ALL_CARDS,:ARTICUL,:BARCODE,:COMMENT,:CUSTOM,:GOOD_DATE,:PACK,:PACKQUANTITY,:PRICECUR,:PRICECUR1,:PRICERUB,:PRICERUB1,:QUANTITY,:RZ,:STR1,:STR2,:STR3,:STR4,:STR5,:TAXHEAD,:COUNTRY,:SUM_RUB,:SUM_CUR,:SUP_MASTERFIELD,:SUP_ID,:SUP_IDENT,:SUP_INN,:FILE_INDEX,:ORDER_COEFF,:ORDER_KRIT_LEVEL,:MANUF_INN,:MANUF_KPP,:VIDPROD_KOD,:CENNIK_ID,:ADDNEWGOODS,:SPERCENT)


15.11.2017 12:48:32: Импорт документов из файлов Microsoft Excel

15.11.2017 12:48:32: Из файла 5-7186771.xls в документ №пр58375829 (41902626)

15.11.2017 12:48:32: Выполнили XLS.Clear

15.11.2017 12:48:32: Выполнили fexe:= TFileStream.Create(ExcelFileName, fmOpenRead or fmShareDenyNone)

15.11.2017 12:48:32: Выполнили xls.LoadFromStream(fexe,true)

15.11.2017 12:48:32: Выполнили fexe.Free

15.11.2017 12:52:04: Выполнили апдейт заголовка

15.11.2017 12:52:46: Документ оприходован

15.11.2017 12:52:52: Документ отправлен на печать

15.11.2017 12:52:52: Из файла 5-7191479.xls в документ №пр58380493 (41914546)

15.11.2017 12:52:52: Выполнили XLS.Clear

15.11.2017 12:52:52: Выполнили fexe:= TFileStream.Create(ExcelFileName, fmOpenRead or fmShareDenyNone)

15.11.2017 12:52:52: Выполнили xls.LoadFromStream(fexe,true)

15.11.2017 12:52:52: Выполнили fexe.Free

15.11.2017 12:52:52: Выполнили апдейт заголовка

15.11.2017 12:52:54: Документ оприходован

15.11.2017 12:53:00: Документ отправлен на печать


Дамп:
Текущий дамп памяти из 256 байт начиная с адреса 6E165BB0:
01 00 00 00 0B 02 00 00 31 34 2E 31 31 2E 32 30 31 37 20 31 36 3A 32 39 3A 34 32 3A 20 73 65 6C
65 63 74 20 65 72 72 6F 72 5F 76 61 6C 75 65 2C 77 61 72 6E 69 6E 67 5F 76 61 6C 75 65 20 66 72
6F 6D 20 69 6D 70 6F 72 74 5F 65 78 63 65 6C 5F 61 64 64 5F 6C 69 6E 65 28 3A 53 45 53 53 49 4F
4E 2C 3A 54 59 50 45 5F 43 4C 41 53 53 49 46 2C 3A 49 44 5F 44 4F 43 48 45 41 44 2C 3A 4E 55 4D
42 45 52 2C 3A 4D 41 53 54 45 52 46 49 45 4C 44 2C 3A 42 41 52 43 4F 44 45 5F 53 45 50 41 52 41
54 4F 52 2C 3A 50 41 43 4B 5F 4B 49 4E 44 2C 3A 41 4C 4C 5F 43 41 52 44 53 2C 3A 41 52 54 49 43
55 4C 2C 3A 42 41 52 43 4F 44 45 2C 3A 43 4F 4D 4D 45 4E 54 2C 3A 43 55 53 54 4F 4D 2C 3A 47 4F
4F 44 5F 44 41 54 45 2C 3A 50 41 43 4B 2C 3A 50 41 43 4B 51 55 41 4E 54 49 54 59 2C 3A 50 52 49
. . . . . . . . 1 4 . 1 1 . 2 0 1 7 1 6 : 2 9 : 4 2 : s e l
e c t e r r o r _ v a l u e , w a r n i n g _ v a l u e f r
o m i m p o r t _ e x c e l _ a d d _ l i n e ( : S E S S I O
N , : T Y P E _ C L A S S I F , : I D _ D O C H E A D , : N U M
B E R , : M A S T E R F I E L D , : B A R C O D E _ S E P A R A
T O R , : P A C K _ K I N D , : A L L _ C A R D S , : A R T I C
U L , : B A R C O D E , : C O M M E N T , : C U S T O M , : G O
O D _ D A T E , : P A C K , : P A C K Q U A N T I T Y , : P R I

--------------------------------2017/11/15 10:28:54--------------------------------
Блок памяти был выделен и не освобожден. Размер: 532

This block was allocated by thread 0x1130, and the stack trace (return addresses) at the time was:
402E70
405279
4052A4
4263BF
426036
425FAA
4F91E8
42AAC7
40514A
75A07C04 [BaseThreadInitThunk]
7793AB8F [Unknown function at RtlInitializeExceptionChain]

Блок в настоящее время используется для объекта класса: AnsiString

Выделенный номер стал: 1964296

Текущий дамп памяти из 256 байт начиная с адреса 6E165E50:
01 00 00 00 0B 02 00 00 31 34 2E 31 31 2E 32 30 31 37 20 31 36 3A 33 30 3A 34 32 3A 20 73 65 6C
65 63 74 20 65 72 72 6F 72 5F 76 61 6C 75 65 2C 77 61 72 6E 69 6E 67 5F 76 61 6C 75 65 20 66 72
6F 6D 20 69 6D 70 6F 72 74 5F 65 78 63 65 6C 5F 61 64 64 5F 6C 69 6E 65 28 3A 53 45 53 53 49 4F
4E 2C 3A 54 59 50 45 5F 43 4C 41 53 53 49 46 2C 3A 49 44 5F 44 4F 43 48 45 41 44 2C 3A 4E 55 4D
42 45 52 2C 3A 4D 41 53 54 45 52 46 49 45 4C 44 2C 3A 42 41 52 43 4F 44 45 5F 53 45 50 41 52 41
54 4F 52 2C 3A 50 41 43 4B 5F 4B 49 4E 44 2C 3A 41 4C 4C 5F 43 41 52 44 53 2C 3A 41 52 54 49 43
55 4C 2C 3A 42 41 52 43 4F 44 45 2C 3A 43 4F 4D 4D 45 4E 54 2C 3A 43 55 53 54 4F 4D 2C 3A 47 4F
4F 44 5F 44 41 54 45 2C 3A 50 41 43 4B 2C 3A 50 41 43 4B 51 55 41 4E 54 49 54 59 2C 3A 50 52 49
. . . . . . . . 1 4 . 1 1 . 2 0 1 7 1 6 : 3 0 : 4 2 : s e l
e c t e r r o r _ v a l u e , w a r n i n g _ v a l u e f r
o m i m p o r t _ e x c e l _ a d d _ l i n e ( : S E S S I O
N , : T Y P E _ C L A S S I F , : I D _ D O C H E A D , : N U M
B E R , : M A S T E R F I E L D , : B A R C O D E _ S E P A R A
T O R , : P A C K _ K I N D , : A L L _ C A R D S , : A R T I C
U L , : B A R C O D E , : C O M M E N T , : C U S T O M , : G O
O D _ D A T E , : P A C K , : P A C K Q U A N T I T Y , : P R I

--------------------------------2017/11/15 10:28:54--------------------------------
Блок памяти был выделен и не освобожден. Размер: 532

This block was allocated by thread 0x1130, and the stack trace (return addresses) at the time was:
402E70
405279
4052A4
4263BF
426036
425FAA
4F91E8
42AAC7
40514A
75A07C04 [BaseThreadInitThunk]
7793AB8F [Unknown function at RtlInitializeExceptionChain]

Блок в настоящее время используется для объекта класса: AnsiString

Выделенный номер стал: 1964298

Текущий дамп памяти из 256 байт начиная с адреса 6E1660F0:
01 00 00 00 0B 02 00 00 31 34 2E 31 31 2E 32 30 31 37 20 31 36 3A 33 31 3A 34 32 3A 20 73 65 6C
65 63 74 20 65 72 72 6F 72 5F 76 61 6C 75 65 2C 77 61 72 6E 69 6E 67 5F 76 61 6C 75 65 20 66 72
6F 6D 20 69 6D 70 6F 72 74 5F 65 78 63 65 6C 5F 61 64 64 5F 6C 69 6E 65 28 3A 53 45 53 53 49 4F
4E 2C 3A 54 59 50 45 5F 43 4C 41 53 53 49 46 2C 3A 49 44 5F 44 4F 43 48 45 41 44 2C 3A 4E 55 4D
42 45 52 2C 3A 4D 41 53 54 45 52 46 49 45 4C 44 2C 3A 42 41 52 43 4F 44 45 5F 53 45 50 41 52 41
54 4F 52 2C 3A 50 41 43 4B 5F 4B 49 4E 44 2C 3A 41 4C 4C 5F 43 41 52 44 53 2C 3A 41 52 54 49 43
55 4C 2C 3A 42 41 52 43 4F 44 45 2C 3A 43 4F 4D 4D 45 4E 54 2C 3A 43 55 53 54 4F 4D 2C 3A 47 4F
4F 44 5F 44 41 54 45 2C 3A 50 41 43 4B 2C 3A 50 41 43 4B 51 55 41 4E 54 49 54 59 2C 3A 50 52 49
. . . . . . . . 1 4 . 1 1 . 2 0 1 7 1 6 : 3 1 : 4 2 : s e l
e c t e r r o r _ v a l u e , w a r n i n g _ v a l u e f r
o m i m p o r t _ e x c e l _ a d d _ l i n e ( : S E S S I O
N , : T Y P E _ C L A S S I F , : I D _ D O C H E A D , : N U M
B E R , : M A S T E R F I E L D , : B A R C O D E _ S E P A R A
T O R , : P A C K _ K I N D , : A L L _ C A R D S , : A R T I C
U L , : B A R C O D E , : C O M M E N T , : C U S T O M , : G O
O D _ D A T E , : P A C K , : P A C K Q U A N T I T Y , : P R I

--------------------------------2017/11/15 10:28:54--------------------------------
Блок памяти был выделен и не освобожден. Размер: 532

This block was allocated by thread 0x1130, and the stack trace (return addresses) at the time was:
402E70
405279
4052A4
4263BF
426036
425FAA
4F91E8
42AAC7
40514A
75A07C04 [BaseThreadInitThunk]
7793AB8F [Unknown function at RtlInitializeExceptionChain]

Блок в настоящее время используется для объекта класса: AnsiString

Выделенный номер стал: 1964300


В коде я явно зануляю list1
...
Рейтинг: 0 / 0
15.11.2017, 09:33:44
    #39553252
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
Gallemar
trans3:= TpFIBTransaction.Create(nil);
try
query3:= TpFIBQuery.Create(nil);
try
finally
freeandnil(trans3);
end;
finally
freeandnil(query3);
end;

Ты попутал. В пррчем, проблема вряд ли в этом. А в том, что List1.Free не в finally - и значит при любом усключении утекает.
...
Рейтинг: 0 / 0
15.11.2017, 09:35:35
    #39553253
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
YuRockТы попутал.
а я говорил ;)
...
Рейтинг: 0 / 0
15.11.2017, 09:39:34
    #39553257
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
YuRockGallemar
trans3:= TpFIBTransaction.Create(nil);
try
query3:= TpFIBQuery.Create(nil);
try
finally
freeandnil(trans3);
end;
finally
freeandnil(query3);
end;

Ты попутал. В пррчем, проблема вряд ли в этом. А в том, что List1.Free не в finally - и значит при любом усключении утекает.

А то , что я freeandnil(List1) в самый конец процедуры вынес?
...
Рейтинг: 0 / 0
15.11.2017, 09:46:24
    #39553263
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
GallemarYuRockпропущено...

Ты попутал. В пррчем, проблема вряд ли в этом. А в том, что List1.Free не в finally - и значит при любом усключении утекает.

А то , что я freeandnil(List1) в самый конец процедуры вынес?А то что ты его try finally не обернул?
...
Рейтинг: 0 / 0
15.11.2017, 09:48:56
    #39553266
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
YuRockGallemarпропущено...


А то , что я freeandnil(List1) в самый конец процедуры вынес?А то что ты его try finally не обернул?
хм, ща исправлю
...
Рейтинг: 0 / 0
15.11.2017, 09:52:09
    #39553267
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
GallemarВ коде я явно зануляю list1
Чуть глаза не сломал... Как ты не запутываешься в begin-end?

Сделай проще: list1 создавай в конструкторе потока, уничтожай - в деструкторе.
...
Рейтинг: 0 / 0
15.11.2017, 09:55:51
    #39553272
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
Gallemarхм, ща исправлюКроме этого, оберни весь этот код в try except и логируй исключения, чтоб хоть понимать, почему они происходят.
...
Рейтинг: 0 / 0
15.11.2017, 09:57:01
    #39553273
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
YuRockGallemarхм, ща исправлюКроме этого, оберни весь этот код в try except и логируй исключения, чтоб хоть понимать, почему они происходят.А лучше перенеси все в отдельную процедуру, а её вызов уже в try except оберни.
...
Рейтинг: 0 / 0
15.11.2017, 10:14:54
    #39553283
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
wadmanGallemarВ коде я явно зануляю list1
Чуть глаза не сломал... Как ты не запутываешься в begin-end?

Сделай проще: list1 создавай в конструкторе потока, уничтожай - в деструкторе.
а как?
конструктор:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
constructor TMyThread.Create(CreateSuspended: Boolean; var Apath1, Apath2, Akind, Alog, Aexe,Auser : string);
		begin
  		inherited Create(CreateSuspended);
  		Priority:= tpLower;
  		FreeOnTerminate:= True;
  		Fpath1:= Apath1;
  		Fpath2:= Apath2;
  		Fkind:= Akind;
  		Flog:=Alog;
  		Fexe:=Aexe;
  		Fuser:=Auser;
  	if CreateSuspended then Resume;
		end;




Передавать ему как List1 как параметр?
...
Рейтинг: 0 / 0
15.11.2017, 10:22:58
    #39553288
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
GallemarПередавать ему как List1 как параметр?
Зачем передавать? Создавай как приватное поле.
...
Рейтинг: 0 / 0
15.11.2017, 10:35:05
    #39553295
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7 и FastMM
wadmanGallemarПередавать ему как List1 как параметр?
Зачем передавать? Создавай как приватное поле.
Игорь, он про это
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
type

TMyThread = class(TThread)
...
FThreadList: TStringList;
...

constructor TMyThread.Create ....
....
FThreadList:= TStringList.Create(Self);
....

destructor TMyThread.Destroy;
...
if Assigned(FThreadList) then FreeAndNil(FThreadList);
...

...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi 7 и FastMM / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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