![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый день. Есть вроде бы стандартный код для отображения загрузки процессора на основе adCpuUsage
Код:
uses Gauges; (*в оригинале сам компонент на форму не ставится*)
.....
implementation
{$R *.dfm}
uses adCpuUsage;
procedure TForm2.FormCreate(Sender: TObject);
var
I:integer;
Gauge: TGauge;
begin
for i:=1 to GetCPUCount-1 do
begin
try
Gauge:=TGauge.Create(Form2);
Gauge.Name:=Format('Gauge%d',[i]);
with TGauge(FindComponent(Format('Gauge%d',[i]))) do
begin
Parent:=StatusBar;
Top:=2;
Width:=100;
Height:=18;
Left:=((i-1)*Width);
MinValue:=0;
MaxValue:=100;
ForeColor:=clGreen;
end;
except
//
end;
end;
end;
procedure TForm2.Timer2Timer(Sender: TObject);
var
n:Integer;
CPU : Integer;
begin
CollectCPUData;
for n:=1 to GetCPUCount-1 do
begin
TGauge(FindComponent('Gauge'+IntToStr(n))).Progress:=StrToInt(Format('%0.0f%',[GetCPUUsage(n)*100]));
CPU:=StrToInt(Format('%0.0f%',[GetCPUUsage(n)*100]));
end;
end;и все вроде бы работает, но если добавить Код:
initialization ReportMemoryLeaksOnShutdown := true; end. то становится видна утечка памяти при закрытии формы. видимо дело в Gauge:=TGauge.Create(Form2); и в отсутствии соотвественно деструктора Вопрос: как правильно при закрытии приложения уничтожить компонент, чтоб не было утечки памяти? |