문제

내 형태에는 iwtreeview와 두 개의 버튼이 있습니다. 하나의 버튼은 일부 iwtreeviewitems를 삭제하고 다른 버튼은 양식을 릴리스합니다.

procedure TIWForm1.IWButton1Click(Sender: TObject);
begin
  IWTreeView1.Items[0].Subitems.Clear;
end;

procedure TIWForm1.IWButton2Click(Sender: TObject);
begin
  Release;
end;

iwtreeviewitems를 삭제 한 후 양식 출시 예외가 발생합니다.

응용 프로그램에서 제기 한 오류 메시지 : Module 'TryTree.exe'의 주소 004E0D8A에서 액세스 위반. 주소 00000000을 읽으십시오

다른 양식이 활성화되고 응용 프로그램 이이 양식 릴리스에 의해 종료되지 않으면 오류 메시지는 다음과 같습니다.

응용 프로그램에 의해 제기 된 오류 메시지 : 경계에서 인덱스 목록 (-1)

IntRawEB 9.0.42 사용 (TMS 제어 및 Delphi 2006으로 인해 TMS는 10.0.17 및 Delphi 2006으로 테스트하지 않았기 때문에).

나는 iwtreeview1.을 퇴치하려고 시도했지만, 전혀 도움이되지 않았다.

도움이 되었습니까?

해결책

subitems 대신에 클리어를 사용합니다

for i := IWTreeView1.Items[0].SubItems.Count-1 downto 0 do begin
    TIWTreeViewItem(IWTreeView1.Items[0].SubItems[i]).Free;
end;

이것은 작동합니다. 더 나은 솔루션을 위해 여전히 열려 있으며 모든 하위 항목을 통한 루프가 포함되지 않을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top