continuous scrolling graph using lazarus/delphi

ceritanya pas muda dulu aku pernah bikin program buat ngebaca data dari serial port trus data itu ditampilin dalam bentuk grafik pake delphi.

berhubung udah sadar nggak pake software bajakan lagi.

aku coba bikin contoh yang sederhana pake lazarus yang free

secara prinsip kode di lazarus dapat ditulis ulang di delphi atau sebaliknya dengan sedikit penyesuaian.

contoh disini data masukan bukan berasal dari serial port tapi aku pakai data random 0-10prinsip kerjanya aku buat array data sebanyak 20 data

y[0] sampai y[19]

setiap data yang masuk dimasukan ke y[0] kemudian data tersebut di geser

intinya ada pada prosedur dibawah :

procedure TForm1.plot(data:double);
var i: integer;
begin
  Application.ProcessMessages;
  series1.Clear;
  i:=0;
  x:=p_size;
  y[0]:=data;                              // Data masuk
  for i:=0 to (p_size-1) do
    begin
      y[x]:=y[x-1];                        // geser data ke kiri
      Series1.AddXY(i,y[x], '', clgreen);  // plot data
      x:=x-1;
    end;
end;

komponen yang dibutuhkan:

  • TChart untuk grafiknya
  • bitbutton untuk start/stop
  • timer untuk menggenerate data (setiap 100ms)

semua komponen diatas udah ada di lazarus

contoh source code bisa diambil disini,  habis di donlod direname dulu dari.odt ke .zip

binarynya disini, habis di donlod direname dari .odt ke .exe

screenshootnya sederhana cuma gini :

chart

happy coding…!