![]() |
|
|
Регистрация | << Правила форума >> | 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); и в отсутствии соотвественно деструктора Вопрос: как правильно при закрытии приложения уничтожить компонент, чтоб не было утечки памяти? |