델파이 treeview 예제

그러나 TreeView 컨트롤에는 LoadFromFile 메서드가 있기 때문에 DragTree 및 QDragTree 예제에서는 데이터를 로드하는 것 외에도 데이터가 종료될 때 데이터를 저장하여 변경 내용을 영구적으로 만듭니다. 또한 TreeView 컨트롤의 글꼴을 사용자 지정하고 다른 간단한 설정을 변경하는 몇 가지 메뉴 항목이 있습니다. 이 예제에서 구현한 특정 기능은 항목 및 전체 하위 트리를 드래그하는 데 대한 지원입니다. 구성 요소의 DragMode 속성을 dmAutomatic로 설정하고 OnDragOver 및 OnDragDrop 이벤트에 대한 이벤트 처리기를 작성했습니다. RefList 예제(책, 잡지, CD-ROM 및 웹 사이트에 대한 간단한 참조 목록)에서 프로그램 사용자가 목록의 내용을 편집할 수 있기 때문에 항목이 파일에 저장되며, 이 목록은 프로그램이 종료될 때 자동으로 저장됩니다. 이렇게 하면 사용자가 편집한 편집이 영구적으로 진행됩니다. TListItems 형식에는 데이터를 저장하는 자동 메커니즘이 없기 때문에 ListView의 내용을 저장하고 로드하는 것은 간단하지 않습니다. 다른 접근 법으로 사용자 지정 형식을 사용하여 문자열 목록에서 데이터를 복사했습니다. 그런 다음 문자열 목록을 파일에 저장하고 단일 명령으로 다시 로드할 수 있습니다. 그러나 이 경우 마지막 예제와 유사한 방식으로 시작 시 TreeView 데이터를 로드하기로 결정했습니다. TTreeView Delphi 구성 요소에는 트리 노드와 같은 항목의 계층 목록이 표시됩니다. 노드는 노드 텍스트와 선택적 이미지로 표시됩니다. 트리 뷰의 각 노드는 TTreeNode 클래스의 인스턴스입니다.

Delphi 6은 여러 선택(MultiSelect 및 MultiSelectStyle 속성 및 선택 배열 참조), 향상된 정렬 및 몇 가지 새로운 이벤트를 포함하여 TreeView 컨트롤에 몇 가지 기능을 추가했습니다. 그러나 주요 개선 사항은 프로그래머가 트리 뷰의 노드 항목의 클래스를 결정하도록 하는 것입니다. 사용자 지정 노드 항목이 있으면 간단한 개체 지향 방식으로 사용자 지정 데이터를 노드에 연결할 수 있습니다. 이 기술을 지원하기 위해 TTreeItems 클래스에 대한 새로운 AddNode 메서드와 새 특정 이벤트인 OnCreateNodesClass가 있습니다. 이 이벤트의 처리기에서 만들 개체의 클래스를 반환합니다. 이러한 상황이 발생하면 태그 속성(많은 Delphi 구성 요소가 있음)을 찾으려는 유혹을 받을 수 있지만 태그 속성은 TTreeNode 클래스에 의해 노출되지 않습니다. Delphi와 함께 배송되는 데모 중에는 사용자 지정 그리기 TreeView 컨트롤을 보여주는 흥미로운 데모가 있습니다. 이 예제는 사용자 지정 그리기 하위 디렉터리입니다. 이제 ListView를 기반으로 한 예제를 보았으니 TreeView 컨트롤을 살펴보겠습니다. TreeView에는 유연하고 강력한 사용자 인터페이스가 있습니다(요소 편집 및 끌기 지원). 또한 Windows 탐색기 사용자 인터페이스이기 때문에 표준입니다.

속성및 각 줄또는 각 줄의 비트맵을 사용자 지정하는 다양한 방법이 있습니다. TreeView 구성 요소의 Items 속성에는 문자열의 계층 구조를 변경하는 데 사용할 수 있는 많은 멤버 함수가 있습니다. 예를 들어 다음 줄로 두 수준 트리를 빌드할 수 있습니다. 모든 변경이 완료되면 EndUpdate를 호출하여 화면에 변경 내용을 표시합니다.

0saves
If you enjoyed this post, please consider leaving a comment or subscribing to the RSS feed to have future articles delivered to your feed reader.

Comments are closed.