我使用固定btnCallback returns...
clicked
op()
op done
timeout expired
second timeout expired
Coroutine has ended
和LabelsSize
将我的TChart LeftAxis保持在同一位置,但轴标题(垂直90°)根据其长度移动。很明显,标题的X位置是从0°(水平)弦长的中心而不是90°文本的顶部或底部的固定位置计算的,这与长度无关。
有解决方法吗?
使用空格填充不起作用,可能是因为在绘制标题之前将它们剥离。
由于
答案 0 :(得分:1)
此错误的解决方案/解决方法(不抛弃捆绑版本以支持评估版本)是将标题的AutoSize
属性设置为false,然后设置Width
和{手动标题的{1}}到要显示的文本的高度。
我正在使用Delphi XE5,我的代码如下所示:
Height
可以在C ++中完成模拟,特别是因为Delphi和C ++ builder之间的大多数VCL是相同的。
编辑1:添加了lBitMap := TBitMap.Create;
try
lBitMap.Canvas.Font := Chart1.LeftAxis.Title.Font;
Chart1.LeftAxis.Title.Width := lBitMap.Canvas.TextHeight(Chart1.LeftAxis.Title.Caption)+5;
Chart1.LeftAxis.Title.Height := lBitMap.Canvas.TextHeight(Chart1.LeftAxis.Title.Caption)+5;
Chart1.LeftAxis.Title.AutoSize := false;
Chart1.LeftAxis.Title.TextAlignment := taCenter;
finally
lBitMap.Free;
end;
,应设置为TextAlignment
,以便标题以轴为中心
编辑2:使用标题的字体获取taCenter
- 如果更改默认字体