2017-04-12 10 views
0

VirtualTreeView의 git 폴더 (Virtual-TreeView-master \ Demos \ Advanced)와 함께 제공되는 MultilineDemo가 수정됩니다. 여러 줄의 'display'코드를 제거하고 VST의 onClick 핸들러에 코드를 추가하여 클릭 된 노드를 편집 가능하게 만들었습니다.VirtualTreeView의 노드를 만들면 TMemo가 기본 동작과 같은 TEdit 대신 여러 줄의 키보드 입력을 허용합니까?

TMemo와 같은 노드에 여러 줄의 텍스트를 입력하고 싶지만 Enter 또는 Shift + Enter 키를 누르면 편집이 끝납니다. 아래 이미지를 참조하십시오. 기본 동작을 수정하기 위해 VST 속성 패널에서 노드에 대한 키 누르기 이벤트를 찾을 수 없습니다. 내 목표는 여러 줄을 입력 할 수있는 노드를 가진 컨트롤과 같은 트리를 갖는 것입니다.

현재 응용 프로그램의 코드를 게시 할 필요가 없습니다.

Default TEdit like behavior of a node in Virtual Tree View

+1

'IVTEditLink' 편집기를 구현하고, 메모 컨트롤을 만들고, 키 이벤트를 처리해야합니다. 'vtMemo' 유형의 값은 Demos/Advanced/Editors.pas 유닛을보십시오. 그것은 확실히 당신이 원하는 것입니다 (당신은 그 시프트 키 처리를 위해'EditKeyDown' 메쏘드를 수정해야만 할 것입니다, 그러나 그 원리는 거기에서 읽을 수 있습니다). 도움이 더 필요하면 알려주세요. – Victoria

+0

고마워, 빅토리아,이 의견을 답으로 게시 할 수 있습니다. – user30478

+0

당신을 환영합니다! 완료;) – Victoria

답변

2

당신은, 당신의 자신의 IVTEditLink 편집기를 구현하는 메모 컨트롤을 생성하고 키 다운 이벤트를 처리해야합니다. 값 유형이 vtMemo 인 경우 /Demos/Advanced/Editors.pas 단위를 참조하십시오. 그것은 거의 당신이 원하는 것을 해냅니다. 메모 편집기를 노드 편집기로 만드는 방법과 편집기의 제어 키 다운 이벤트 (이 경우 EditKeyDown 메서드)를 처리하는 방법을 보여줍니다.