![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
возникла проблема, мне необходимо что бы timer1 выполнялся каждые 10 секунд interval=10000 и в on timer было следующее
Код:
ShellExecute(Handle, nil, 'cmd.exe', '/c '+ 'net session >c:\1.txt', nil, SW_HIDE);
sleep(1000);
ls:=TStringList.Create;
ls.LoadFromFile('c:\1.txt');
d:=DosToWin(ls.Text);
ls.Clear;
ls.Add(d);
ls.SaveToFile('c:\1.txt');
ls.Free; |
|
#2
|
||||
|
||||
|
ls можно создать вне таймера для оптимизации, при запуске программы например onCreate, уничтожать по завершению, например на onClose или как там его. Но сама беда с памятью непонятна. Вроде как все чистенько. Возможно утечка где-то еще, например в DosToWin.
|
|
#3
|
||||
|
||||
|
Знаю, что такая проблема на делфи 7 есть. Вроде как и пишешь, что "что-то".free, а память не освобождается. А когда снова создаёшь, то память отнимается тоже вновь. Так и растёт.
|
|
#4
|
||||
|
||||
|
Цитата:
|
|
#5
|
||||
|
||||
|
Цитата:
Код:
type
TFoo = class
public
procedure Free; reintroduce;
end;
procedure TFoo.Free;
begin
GetMem($100500);
end;![]() P.S. Подсветчик синтаксисане не подсветил ключевое слово "reintroduce", как-то не красиво. |
| Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
~TB~ (12.07.2012)
| ||
|
#6
|
||||
|
||||
|
ну так опять-таки косяк разработчика, а не Delphi. подсветка это всего лишь сладкая французкая булочка к чаю)
|
|
#7
|
|||
|
|||
|
а если не секрет - почему после загрузки делается dostowin, а перед записью wintodos не делается?
ведь по сути, после второго открытия файла dostowin в исходном коде вроде бы не нужен. либо излишнее в коде, либо недостаточно в плане перекодировки |