StringGrid的持續寫入造成程式記憶體使用量不斷增加 |
答題得分者是:daldal
|
jinliang1979g
一般會員 發表:1 回覆:0 積分:0 註冊:2005-01-28 發送簡訊給我 |
大家好,
如標題, StringGrid的持續寫入造成程式記憶體使用量不斷增加 不知道該如何消除此問題,每次增加的記憶體大小不同 約10~20k, 請各位先進指點。 感激不進~~ 附件有執行結果的畫面。 程式碼如下: //--------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { LoopCount = 0; } //--------------------------------------------------------------------------- void __fastcall TForm1::ButtonStartLoopClick(TObject *Sender) { Timer1->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TForm1::ButtonStopLoopClick(TObject *Sender) { Timer1->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { LoopCount ; Form1->StringGrid1->Cells[1][LoopCount] = Form1->LoopCount ; Form1->StringGrid1->Cells[1][1]= Form1->LoopCount ; } //--------------------------------------------------------------------------- |
daldal
高階會員 發表:6 回覆:102 積分:226 註冊:2007-06-18 發送簡訊給我 |
因為這行的關係
[code cpp] Form1->StringGrid1->Cells[1][LoopCount] = Form1->LoopCount ; [/code] 雖然你的StringGrid1顯示出來的大小只有5x5 但是由於上面那行,你的StringGrid1動態大小一直在增長 你可以把再執行Timer後觀看以下Cells[x][y]的內容 [code cpp] ShowMessage(StringGrid1->Cells[1][5]); ShowMessage(StringGrid1->Cells[1][8]); ....類推 [/code] 其實都是有值的,只是不會顯示出來而已 自然會占用記憶體囉 |
ytzou
一般會員 發表:0 回覆:1 積分:0 註冊:2008-05-29 發送簡訊給我 |
===================引 用 daldal 文 章=================== 因為這行的關係 [code cpp] Form1->StringGrid1->Cells[1][LoopCount] = Form1->LoopCount ; [/code] 雖然你的StringGrid1顯示出來的大小只有5x5 但是由於上面那行,你的StringGrid1動態大小一直在增長 你可以把再執行Timer後觀看以下Cells[x][y]的內容 ===================引 用 daldal 文 章=================== 可是若固定行數,一直重複填入固定的行數, 記憶體還是會逐漸增加? //--------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { LoopCount = 0; } //--------------------------------------------------------------------------- void __fastcall TForm1::ButtonStartLoopClick(TObject *Sender) { Timer1->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TForm1::ButtonStopLoopClick(TObject *Sender) { Timer1->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { LoopCount ; int aa = LoopCount%5; Form1->StringGrid1->Cells[1][aa] = Form1->LoopCount ; //Form1->StringGrid1->Cells[1][1]= Form1->LoopCount ; } //---------------------------------------------------------------------------
編輯記錄
ytzou 重新編輯於 2008-06-04 18:34:04, 註解 無‧
|
daldal
高階會員 發表:6 回覆:102 積分:226 註冊:2007-06-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |