델파이 treeview 예제

이러한 상황이 발생하면 태그 속성(많은 Delphi 구성 요소가 있음)을 찾으려는 유혹을 받을 수 있지만 태그 속성은 TTreeNode 클래스에 의해 노출되지 않습니다. 데이터를 로드하는 것 외에도 프로그램은 종료될 때 데이터를 저장하여 변경 내용을 영구적으로 만듭니다. 또한 TreeView 컨트롤의 글꼴을 사용자 지정하고 다른 간단한 설정을 변경하는 몇 가지 메뉴 항목이 있습니다. 이 예제에서 구현한 특정 기능은 항목 및 전체 하위 트리를 드래그하는 데 대한 지원입니다. 구성 요소의 DragMode 속성을 dmAutomatic로 설정하고 OnDragOver 및 OnDragDrop 이벤트에 대한 이벤트 처리기를 작성했습니다. 이것은 매우 일반적인 기술이므로 자세히 설명하는 예제를 만들었습니다. CustomNodes 예제는 실제 사례에 초점을 맞추지 않지만 두 개의 서로 다른 사용자 지정 트리 노드 클래스가 다른 대/소문자를 파생하는 다소 복잡한 상황을 보여 주지만. 기본 클래스는 가상 메서드에 매핑된 ExtraCode 속성을 추가하고 하위 클래스는 이러한 메서드 중 하나를 재정의합니다. 기본 클래스의 경우 GetExtraCode 함수는 단순히 값을 반환합니다. 파생 클래스의 경우 값이 상위 노드 값에 곱됩니다. 다음은 클래스와 이 두 번째 방법입니다: 이미지를 목록이나 트리에 연결하려면 메뉴 이미지에 이미 사용한 ImageList 구성 요소를 참조해야 합니다. ListView에는 큰 아이콘(LargeImages 속성), 작은 아이콘(SmallImages 속성) 및 항목 상태(StateImages 속성)에 대한 이미지 목록의 세 가지 이미지 목록이 있을 수 있습니다.

RefList 예제에서는 두 개의 서로 다른 ImageList 구성 요소를 사용하여 처음 두 속성을 설정했습니다. 나는 수많은 포팅 데모에서이 프로그램을 사용하기 때문에, 나는 당신이 델파이와 Kylix와 CLX 응용 프로그램으로 네이티브 VCL 응용 프로그램으로 컴파일 할 수있는 버전을 구축했습니다. 이것은 VisualCLX 및 Windows에서 Qt를 사용하여 델파이로 이식 할 수있는이 동일한 예제의 이전 버전을 포함하여이 책의 대부분의 다른 프로그램과 다릅니다. 가끔 다른 길을 따라가는 것은 유익할 수 있습니다. RefList 예제(책, 잡지, CD-ROM 및 웹 사이트에 대한 간단한 참조 목록)에서 프로그램 사용자가 목록의 내용을 편집할 수 있기 때문에 항목이 파일에 저장되며, 이 목록은 프로그램이 종료될 때 자동으로 저장됩니다.