Q&A

  • 배열에 등록된 컴퍼넌트 메모리 해지...
panelBts: array[0..5000, 0..1] of TShape;

배열에 TShapre를 집어 넣었습니다.

그런데 메모리를 해제하려하니 시간이 너무 많이 걸리는데 다른 방법 있나요

for i := 0 to 5000 do begin
  if panelBts[i] <> nil then begin
    panelBts[i].Free;
    panelBts[i].nil;
  end;
end;

혹시 위의 방법 말고 속도를 올릴 수 있는 방법을 답변해 주심 감사하겠습니다.

1  COMMENTS
  • Profile
    최용일 2002.05.16 02:19
    안녕하세요. 최용일입니다.

    이렇게 한번 해보세요...

    for I := 0 to 5000
    begin
        if (PanelBts[I] <> nil) then
            PanelBts[I].Visible := False;
    end;

    for I := 0 to 5000
    begin
        if (PanelBts[I] <> nil) then
        begin
            PanelBts[I].Free;
            PanelBts[I] := nil;
        end;
    end;

    PS) 5000개의 TShape를 한꺼번에 보여주는게 아니라면... 비효율적인 방법같습니다...

    ^^ 항상 즐코하세요...