unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, ExtCtrls, StdCtrls;
type
TTemp = array[1..60] of integer;
TForm1 = class(TForm)
SG: TStringGrid;
EditMin: TEdit;
EditMax: TEdit;
EditMittel: TEdit;
ButtonStart: TButton;
ButtonStop: TButton;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure ButtonStartClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
Temp : TTemp;
MitteWert : integer;
MaxWert : integer;
MinWert : integer;
LaufNr : integer;
procedure ClearZellen;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
const
Beschreibung : array[0..2] of string = ('Nr.:','Datum/Uhrzeit','Messwert');
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
I : integer;
begin
Randomize;
with SG do
begin
Align := alTop;
ColCount := 3;
RowCount := high(TTemp)+1;
for I := low(Beschreibung) to high(Beschreibung) do SG.Cells[I,0] :=Beschreibung[I];
for I := low(TTemp) to high(TTemp) do Temp[I] := 0;
end;
Timer1.Enabled := false;
ButtonStart.OnClick := ButtonStartClick;
ButtonStop.OnClick := ButtonStartClick;
ClearZellen;
ButtonStartClick(self);
end;
procedure TForm1.ButtonStartClick(Sender: TObject);
begin
Timer1.Enabled := not Timer1.Enabled;// Button1 und zwei gleiche Procedure legen
if not Timer1.Enabled
then ClearZellen
else;
end;
//------------------------------------------------------------------------------
procedure TForm1.Timer1Timer(Sender: TObject);
var
RMinMax : integer;
I : integer;
begin
with SG do
begin
Cells[0,LaufNr] := intToStr(LaufNr);
Cells[1,LaufNr] := FormatDateTime('dd-mm-yyyy-hh-nn-ss', now);
RMinMax := Random(10*100)+15*100+1;
Temp[LaufNr] := RMinMax;
if MinWert > RMinMax then MinWert :=RMinMax;
if MaxWert < RMinMax then MaxWert :=RMinMax;
for I := low(TTemp) to LaufNr do MitteWert := MitteWert + Temp[LaufNr];
MitteWert := MitteWert div LaufNr;
Cells[2,LaufNr] := FloatToStr(Temp[LaufNr]/100*(-1));
EditMittel.Text := FloatToStr(MitteWert/100*(-1));
EditMax.Text := FloatToStr(MaxWert/100*(-1));
EditMin.Text := FloatToStr(MinWert/100*(-1));
inc(LaufNr);
// if LaufNr > 60 then begin LaufNr := 1;MitteWert := 0;end;
if LaufNr > 60 then ClearZellen;
end;
end;
//******************************************************************************
procedure TForm1.ClearZellen;
var
I,J : integer;
begin
for I := low(TTemp) to High(TTemp) do
for J := low(Beschreibung) to high(Beschreibung) do
SG.Cells[J,I]:='';
LaufNr := 1;
MitteWert := 0;
MaxWert := 0;
MinWert := 9999;
end;
end.