아주 간단한거 같은데 메모리가 4KB씩 주기적으로 올라갑니다. 뭐가 잘못된걸까요 ~~ 초보라서 ㅡ,,ㅡ
시간 주기를 주고 RxRichEdit1과 RxRichEdit2에 글씨를 써서 두개를 번갈아 화면에 표출하게 짤라고 하는데요
imgfile은 Timage입니다. 시간설정해서 돌려보면 표출은 번갈아 잘되는데 메모리를 보면 거의 주기적으로 4KB씩 증가하네요 그리고 시간이 지나면은 죽어버립니다. 도와주십시요 감사합니다. 꾸벅
procedure TForm1.Timer2Timer(Sender: TObject);
var
DTime : integer;
i : Extended;
Cap : TBitmap;
TheRect : TRect;
DC : HDC;
TimerVar:integer;
begin
Timer2.Enabled:= True;
if A=1 then
ImgFile.Visible := True;
ImgFile.Enabled := True;
TimerVar := TimerVar + 1;
i := TimerVar/SpinEdit3.Value;
DTime := trunc(i);
DTime := DTime mod 2;
Case DTime of
0 : begin
Cap := Tbitmap.Create;
Cap.Width := LedWidth.Value*16;
Cap.Height := LedHeight.Value * 16;
RxRichEdit1.PaintTo(Cap.Canvas.Handle,LedWidth.Value*16,LedHeight.Value*16);
DC := GetDc(RxRichEdit1.Handle);
Cap.Canvas.Handle := DC;
Therect := Rect(0,0,LedWidth.Value*16,LedHeight.Value*16);
ImgFile.Canvas.CopyRect(TheRect,Cap.Canvas,Rect(1,0,LedWidth.Value*16+1,LedHeight.Value*16));
Cap.Free;
ReleaseDC(RxRichEdit1.Handle,DC); //표출문안1 생성
end;
1 : begin
Cap := Tbitmap.Create;
Cap.Width := LedWidth.Value*16;
Cap.Height :=LedHeight.Value*16;
RxRichEdit2.PaintTo(Cap.Canvas.Handle,LedWidth.Value*16,LedHeight.Value*16);
DC :=GetDC(RxRichEdit2.Handle);
Cap.Canvas.Handle := DC;
Therect := Rect(0,0,LedWidth.Value*16,LedHeight.Value*16);
//Screen.Canvas.CopyRect(TheRect,Cap.Canvas,Rect(1,0,LedWidth.Value*16+1,LedHeight.Value*16));
ImgFile.Canvas.CopyRect(TheRect,Cap.Canvas,Rect(1,0,LedWidth.Value*16+1,LedHeight.Value*16));
Cap.Free;
ReleaseDC(RXRichEdit2.Handle,DC);
end; //end of begin
end; //end of case 내부 1
if A=0 then
begin
ImgFile.Visible := False;
end;
end;