당신은 그것을로, 힌트를 사용할 수 없습니다 탭을 탐색 할 때 힌트를 새로 고치는 것처럼 보이지 않습니다. 따라서 당신이 TJvDockTabPanel.MouseMove을 (무시)와 같은 것을 수행해야합니다 자신의 기능을 제공하기 위해
inherited MouseMove(Shift, X, Y)
Index := GetPageIndexFromMousePost(X, Y)
// Your code here
if (Index > -1) then
begin
// Strip hotkey '&' out.
Hint := StringReplace(Page.Pages[Index].Caption, '&', '', [rfReplaceAll]);
Application.ActivateHint(ClientToScreen(Point(X, Y)));
end;
할 수 있습니다 중 하나 포크 JvDockVIDStyle.pas 및 변경하거나, 서브 클래스, 다음 dockstyle에 클래스를 주입 . 우리의 서브 클래스 중 하나를 사용하도록 도크 스타일에 TabDockClass를 재정 의하여 생성
unit JvDockExtVIDStyle;
interface
uses JvDockVIDStyle, Classes;
type
TJvDockExtTabPanel = class(TJvDockTabPanel)
protected
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
end;
TJvDockExtVIDTabPageControl = class(TJvDockVIDTabPageControl)
public
constructor Create(AOwner: TComponent); override;
end;
implementation
uses Forms, SysUtils;
{ TJvDockExtVIDTabPageControl }
constructor TJvDockExtVIDTabPageControl.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
//Override TabPanel with our subclassed version
TabPanelClass := TJvDockExtTabPanel;
end;
{ TJvDockExtTabPanel}
procedure TJvDockExtTabPanel.MouseMove(Shift: TShiftState; X, Y: Integer);
var
Index : Integer;
begin
inherited MouseMove(Shift, X, Y);
Index := GetPageIndexFromMousePos(X, Y);
if (Index > -1) then
begin
Hint := StringReplace(Page.Pages[Index].Caption, '&', '', [rfReplaceAll]);
Application.ActivateHint(ClientToScreen(Point(X, Y)));
end;
end;
그런 다음 당신이 당신의 주요 형태를 구현할 수있는 방법은 다음과 같습니다의 대략적인 예입니다. 좋아요 :
DockStyle.TabDockClass := TJvDockExtVIDTabPageControl;
DockServer.DockStyle := DockStyle;
이것은 VSNET 스타일에서도 잘 작동합니다. 그냥이 나타나는 곳 VSNet와 VID를 교체하고이 작업을 수행 할 JVCL 트렁크에 업데이트가 지금이 TJvDockVSNetTabPanel에서 대신 업데이트
TJvDockTabPanel
의 상속합니다. 구성 요소를 업데이트하고 독 스타일의 ShowTabHints 속성을 true로 설정합니다. 또는 코드에서 수행하십시오. MyDockStyle.ShowTabHints := True;
@TLama 예,하지만 전체 패널에 대한 하나의 힌트 만 표시합니다. 내 문제는 컨테이너 내의 다른 탭에 다른 힌트를 표시하려고합니다. – user3042297
'ShowHint' 속성을 True로 설정하는 것을 잊었다 고 생각했습니다. 하지만 당신이 질문에 열거 한 것보다 다른 컨트롤에 대한 힌트를 설정하는 방법을 찾고 있다는 것을 깨달았습니다. 그 죄송합니다. – TLama