用TCanvas绘制的线条清晰

时间:2013-06-21 14:41:23

标签: delphi delphi-2007

每次单击鼠标左键时,我使用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

端;

PlotHorizo​​ntal程序

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;

1 个答案:

答案 0 :(得分:0)

我能够通过保存绘制线条的旧X和Y值来使其工作。然后,当再次单击鼠标时,我刷新了图表,并再次重新绘制了该行。