delphi - 如何反转 Delphi 的 TTrackbar.Orientation 值?
问题描述
当TTrackbar.Orientation
属性设置为trVertical
时,Min
值在顶部,而Max
在底部:
如何反转Min
/Max
位置?例如,如果我想使用垂直方向的 TrackBar 来控制音频输出的音量,我需要Min
底部和Max
顶部的 TrackBar。
解决方案
没有内置的方法可以做到这一点。但是您可以通过代码反转 min-max 值:
volume := (trackbar.Max - trackBar.Position) + trackBar.Min;
关于 ToolTip 值的呈现,@Victoria 好心提供了一个拦截TTN_NEEDTEXT
windows 消息并更正文本输出的解决方案:
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;
推荐阅读
- python - 如何插入 numpy 数组以适合我的模型?
- clojure - 在 AWS Lambda 自定义运行时运行 Clojure GraalVM 原生映像
- centos7 - centos rsync 设备上没有剩余空间
- regex - 在 Google 表格中调用加密货币价格时出错
- javascript - 在哪里放置 setInterval 和 clearInterval
- php - API 有时返回 NULL 响应
- python - 错误:使用 Flask-socketio 命名“未定义 Socketkind”?
- javascript - Angular:如何使 localStorage 异步工作
- python - 当玩家猜出所有字母时,Python Hangman 不会结束
- android - 按下按钮时更新按钮的状态