0

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;
4

1 に答える 1

0

線が描かれた場所の古いXとYの値を保存することで、それを機能させることができました。次に、マウスがもう一度クリックされたときに、グラフを更新し、線をもう一度描き直しました。

于 2013-06-26T11:59:19.627 に答える