TChoomDragTool을 TChart에 추가하는 방법을 알아 내려는 데 어려움이 있습니다. TChart는 확대/축소를 지원한다는 점을 알고 있지만, 동시에 패닝 (오른쪽 클릭으로 드래그)을 비활성화하려고합니다. 확대/축소를 비활성화하는 속성이 있지만 패닝을 비활성화하는 간단한 방법은 없습니다.Lazarus TAChart 런타임에 TChartToolSet과 TZoomDragTool을 추가하십시오.
내가 알아 낸 것은 TChartToolSet을 차트에 추가하면 확대/축소 및 패닝 기능이 모두 비활성화된다는 것입니다. TChootToolSet에 TZoomDragTool을 추가 할 수 있다면 원하는대로 할 수 있습니다. 그것은 디자인 타임에 그것을하면 잘 작동하지만, 런타임에 어떻게 해야할지 모르겠다.
누군가가 나를 어떻게하는지 보여줄 수 있다면 좋겠다.
작은 코드 스 니펫이 있으며 실행하면 오류가 발생합니다.
TForm1 = class(TForm)
Button1: TButton;
m_chart: TChart;
m_toolset: TChartToolset;
m_zoom: TZoomDragTool;
procedure Button1Click(Sender: TObject);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
m_chart:= TChart.Create(self);
with m_chart do begin
autosize:= False;
left:= 10;
top:= 40;
width:= 300;
height:= 150;
parent:= Self;
visible:= True;
end;
m_toolset:= TChartToolset.Create(m_chart); //is the owner correct?
m_zoom:= TZoomDragTool.Create(m_toolset); //is the owner correct?
m_toolset.Tools.Add(@m_zoom); //is this correct?
m_chart.Toolset:= m_toolset; //is this the way?
//or something like
//m_chart.Toolset.InsertComponent(m_toolset);
//both of them crash
end;
당신은 m_zoom.toolset : = m_toolset;이라고 말하고자했습니다. 권리? 그것은 효과가 있었다. 고맙습니다. 게시물을 수정하십시오. 대답으로 선택하겠습니다. –
나를 고쳐 주셔서 고맙습니다 - 고쳐졌습니다. –