每次单击鼠标左键时,我使用TCanvas绘制蓝线,单击鼠标右键时使用红线。目前每当我点击图表上的另一条线时。我想要做的是清除旧行,然后绘制一个新行。
以下是一些示例代码。
onClick事件的代码
procedure TForm2.Chart1ChartClick(Sender: TJvChart; Button: TMouseButton;
Shift: TShiftState; X, Y, ChartValueIndex, ChartPenIndex: Integer;
var ShowHint, HintFirstLineBold: Boolean; HintStrs: TStrings);
begin
if Button = mbLeft then
begin
canvas.pen.color := clblue;
PlotHorizontal(X, Y);
end
else if Button = mbRight then
begin
Canvas.Pen.color := clred;
PlotHorizontal(X, Y);
end
端;
PlotHorizontal程序
procedure TForm2.PlotHorizontal(X, Y : integer);
begin
with canvas do
begin
// draw the horizontal line
MoveTo(X, Y);
// without the 4 the line doesn't seem to reach the end of the graph
LineTo(X, Chart1.Options.XStartOffset -4);
MoveTo(X, Y);
LineTo(X, Chart1.Options.XStartOffset +
+ Chart1.Options.Yend);
end;
end;
答案 0 :(得分:0)
我能够通过保存绘制线条的旧X和Y值来使其工作。然后,当再次单击鼠标时,我刷新了图表,并再次重新绘制了该行。