Files
StarStreet-Forecast/graficimeteo.pas
2026-03-23 09:26:34 +00:00

84 lines
1.7 KiB
ObjectPascal

unit graficimeteo;
{$mode ObjFPC}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, TAGraph,
TASeries, fpjson, jsonparser;
type
{ TForm3 }
TForm3 = class(TForm)
Chart1: TChart;
Chart2: TChart;
CoperturaSeries: TLineSeries;
Chart3: TChart;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Vento10m: TLineSeries;
Vento180m: TLineSeries;
VisibilitaSeries: TLineSeries;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
private
public
var
meteotext:string;
meteoposgiorno:integer;
end;
var
Form3: TForm3;
implementation
{$R *.lfm}
{ TForm3 }
procedure TForm3.FormShow(Sender: TObject);
var
MeteoJSON: TJSONData;
OggettoJSON: TJSONObject;
i: integer;
oracercata:string;
begin
MeteoJSON:=fpJSON.GetJSON(meteotext);
OggettoJSON := MeteoJSON as TJSONObject; //questo è stato fatto per rendere i dati meglio estraibili
VisibilitaSeries.Clear;
CoperturaSeries.Clear;
Vento10m.Clear;
Vento180m.Clear;
for i:=0 to 23 do
begin
if meteoposgiorno>=6 then oracercata:=inttostr (i+meteoposgiorno*24)
else oracercata:=inttostr (i+1+meteoposgiorno*24);
VisibilitaSeries.AddXY(i, round(OggettoJSON.FindPath('hourly.visibility['+oracercata+']').AsFloat/1000));
CoperturaSeries.AddXY(i, round(OggettoJSON.FindPath('hourly.cloud_cover['+oracercata+']').AsFloat));
Vento10m.AddXY(i, round(OggettoJSON.FindPath('hourly.wind_speed_10m['+oracercata+']').AsFloat));
Vento180m.AddXY(i, round(OggettoJSON.FindPath('hourly.wind_speed_180m['+oracercata+']').AsFloat));
end;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
end;
end.