내 맞춤 버튼 (이미지)을 사용하여 VST의 기본 [-]
/[+]
버튼을 대체하려면 어떻게해야하나요?
화살표 대신 (, ) RTL 양방향 모드 (, )를 지원하고 싶습니다.TVirtualStringTree - [-]/[+] 버튼을 어떻게 변경합니까?
편집 : bsTriangle
스타일 (ButtonStyle)을 알고 있습니다. 그것은 RTL을 존중하지 않습니다. 내 자신의 맞춤 이미지를 사용하고 싶습니다.
내 맞춤 버튼 (이미지)을 사용하여 VST의 기본 [-]
/[+]
버튼을 대체하려면 어떻게해야하나요?
화살표 대신 (, ) RTL 양방향 모드 (, )를 지원하고 싶습니다.TVirtualStringTree - [-]/[+] 버튼을 어떻게 변경합니까?
편집 : bsTriangle
스타일 (ButtonStyle)을 알고 있습니다. 그것은 RTL을 존중하지 않습니다. 내 자신의 맞춤 이미지를 사용하고 싶습니다.
일반적으로 Windows Vista 및 Windows 7의 이미지가 아닙니까? 트리 컨트롤은 테마를 사용할 때 해당 시스템에서 자동으로 가져와야합니다.
가까운 곳에서 쉽게 얻을 수있는 방법은 ButtonStyle
속성을 bsTriangle
으로 설정하는 것입니다. 그래도 질문에 표시된 이미지와 정확히 일치하지는 않습니다. "마이너스"화살표는 대각선 대신 직선을 가리키고 "플러스"화살표는 윤곽선 대신 단색으로 표시됩니다.
고유 한 비트 맵을 제공 할 수 있습니다. VT_XPBUTTONMINUS 및 VT_XPBUTTONPLUS 리소스를 원하는 이미지로 변경하고 ButtonFillMode
속성을 fmShaded
으로 설정합니다.
bi-di 모드를 기반으로 이미지를 변경하는 기능은 없습니다. PaintNodeButton
을 재정의 한 자손 클래스를 만든 다음 원하는대로 칠할 수 있습니다. 상위 클래스의 배치 코드를 복사하십시오.
ButtonStyle
속성을 참조하십시오. 그것이 RTL bidi 모드를 존중하지는 않을지 생각합니다.
저는 'bsTriangle' 스타일을 알고 있습니다. 그것은 RTL을 존중하지 않습니다. 나는 내 자신의 이미지를 사용하고 싶다. – ZigiZ
IIRC 당신은 PaintOptions에 toUseExplorerTheme을 포함시켜 그것을 얻을 수 있습니다. 그러나 이것은 또한 선택 모양을 (더 나은 IMNSHO로) 그리고 아마도 더 많이 바꿀 것입니다.
예를 들어나는 다음과 같은 이벤트 핸들러 폼에 TVirtualStringTree
을 삭제하고 추가하는 경우 : Form1.BiDiMode
bdRightToLeft
에 수익률 설정 불행하게도 :
procedure TForm1.FormCreate(Sender: TObject);
begin
VT.RootNodeCount := 10;
VT.TreeOptions.PaintOptions := VT.TreeOptions.PaintOptions + [toUseExplorerTheme];
VT.OnInitNode := VTInitNode;
VT.OnInitChildren := VTInitChildren;
end;
procedure TForm1.VTInitChildren(Sender: TBaseVirtualTree;
Node: PVirtualNode; var ChildCount: Cardinal);
begin
ChildCount := 3;
end;
procedure TForm1.VTInitNode(Sender: TBaseVirtualTree;
ParentNode, Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
begin
Include(InitialStates, ivsHasChildren);
end;
내가 얻을를
편집 내 독일어 Windows 7.이 아랍어 또는 히브리어 시스템에서 더 잘 작동하는지 모르겠습니다.
어떤 VirtualTree 버전을 사용하고 있습니까? – ZigiZ
@ZigiZ : VirtualTrees.pas 상단의 cooment는 버전 5.0.0입니다. –
고맙습니다. 'PaintNodeButton'을 오버 라이딩하는 것이 유일한 선택 인 것처럼 보입니다. – ZigiZ