Eri*_*ier 3 delphi vcl trackbar delphi-2010
我试图将刻度线样式设置为tsManual,分别将最小和最大位置设置为1和100,并在9,19,79和89处添加刻度,除了控件自动显示的第一个和最后一个之外,没有显示任何刻度.我尝试了其他值,但没有显示任何值.我的代码是:
TrackBar1.TickStyle := tsManual;
TrackBar1.Min := 1;
TrackBar1.Max := 100;
TrackBar1.SetTick( 9 );
TrackBar1.SetTick( 19 );
TrackBar1.SetTick( 79 );
TrackBar1.SetTick( 89 );
Run Code Online (Sandbox Code Playgroud)
有什么建议?我确定我错过了一个重要的细节,文档非常稀疏.这是在Delphi 2010中使用更新4的新空VCL Forms项目.
先感谢您.
如果Handle属性当前未分配,则TTrackBar.SetTick()不发送TBM_SETTIC消息:
procedure TTrackBar.SetTick(Value: Integer);
begin
if HandleAllocated then // <-- here
SendMessage(Handle, TBM_SETTIC, 0, Value);
end;
Run Code Online (Sandbox Code Playgroud)
在第一次读取Handle属性之前,不会分配窗口句柄,而不是在最初创建组件时.因此,在调用SetTick()之前调用HandleNeeded():
TrackBar1.TickStyle := tsManual;
TrackBar1.Min := 1;
TrackBar1.Max := 100;
TrackBar1.HandleNeeded; // <-- here
TrackBar1.SetTick( 9 );
TrackBar1.SetTick( 19 );
TrackBar1.SetTick( 79 );
TrackBar1.SetTick( 89 );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2552 次 |
| 最近记录: |