当TTrackbar.Orientation
属性设置为trVertical
时,Min
值位于顶部,Max
位于底部:
如何反转Min
/ Max
位置?例如,如果我想在垂直方向上使用TrackBar音频输出音量控制,我需要底部的Min
和顶部的Max
。
答案 0 :(得分:2)
没有内置的方法可以做到这一点。但您可以通过代码反转最小 - 最大值:
volume := (trackbar.Max - trackBar.Position) + trackBar.Min;
关于ToolTip值的表示,@ Victoria提供了一个拦截TTN_NEEDTEXT
窗口消息并更正文本输出的解决方案:
uses
Winapi.CommCtrl;
type
TTrackBar = class(Vcl.ComCtrls.TTrackBar)
private
procedure WMNotify(var Msg: TWMNotify); message WM_NOTIFY;
end;
implementation
procedure TTrackBar.WMNotify(var Msg: TWMNotify);
begin
if Msg.NMHdr.code = TTN_NEEDTEXTW then
begin
PToolTipTextW(Msg.NMHdr)^.hInst := 0;
PToolTipTextW(Msg.NMHdr)^.lpszText :=
PChar('Position: ' + IntToStr((Max - Position) + Min));
end
else
inherited;
end;