• Как сделать точечный обновляемый график?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Проще всего используя Canvas.
    Примерно так:
    //Добавление по кнопке
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: Integer;
    begin
      //Смещение массива
      for i := 0 to 7 - 1 do
        Points[i] := Points[i + 1];
      //Добавляем в конец новое значение
      Points[7] := Random(40);
      //Перерисовываем окно
      Invalidate;
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    var
      i: Integer;
    begin
      //Заполняем случайными значениями
      for i := 0 to 7 do
        Points[i] := Random(40);
    end;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      i, Offset: Integer;
    begin
      with Canvas do
      begin
        //Смещение сверху
        Offset := 150;
        //Ставим начало рисования линии на ось Х и расположение первого элемента массива
        //10 - это интервал между точками
        MoveTo(0 * 10, Offset - Points[0] * 2);
        //Рисуем остальные элементы
        for i := 1 to 7 do
        begin
          LineTo(i * 10, Offset - Points[i] * 2);
          //Кружок для точки
          Ellipse(i * 10 - 2, Offset - Points[i] * 2 - 2, i * 10 + 3, Offset - Points[i] * 2 + 3);
        end;
      end;
    end;

    5e9530680ce0a033034428.png
    Ответ написан
    1 комментарий