Changeset 4 for trunk/FormMain.pas


Ignore:
Timestamp:
Apr 7, 2026, 10:51:20 PM (3 weeks ago)
Author:
chronos
Message:
  • Added: Show result values in charts.
  • Fixed: Charts redrawing.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FormMain.pas

    r3 r4  
    2525    Chart1LineSeries2: TLineSeries;
    2626    Chart1LineSeries3: TLineSeries;
     27    Chart1LineSeries4: TLineSeries;
     28    Chart1LineSeries5: TLineSeries;
     29    Chart1LineSeries6: TLineSeries;
     30    CheckBoxShowResult: TCheckBox;
    2731    ComboBoxEan: TComboBox;
    2832    ComboBoxEan3: TComboBox;
     
    5357    procedure ButtonIntervalRightClick(Sender: TObject);
    5458    procedure ButtonLoadClick(Sender: TObject);
     59    procedure CheckBoxShowResultChange(Sender: TObject);
    5560    procedure ComboBoxEanSelect(Sender: TObject);
    5661    procedure ComboBoxPeriodSelect(Sender: TObject);
     
    7479    ReportsDir: string;
    7580    OwnersFileName: string;
     81    ShowResult: Boolean;
    7682    function FileNameFilter(FileName: string): Boolean;
    7783    function MeasureToFloat(Value: Double; Interval: Double): Double;
     
    114120  SMeasured = 'Measured';
    115121  SResult = 'Result';
     122  SDay = 'Day';
     123  SWeek = 'Week';
     124  SMonth = 'Month';
     125  SYear = 'Year';
    116126
    117127{ TFormMain }
     
    143153  IntervalTo := Eans[0].Values.Last.Time + 15 * OneMinute;
    144154  UpdateInterval;
    145   ShowActiveTab;
    146155  UpdateInterface;
     156end;
     157
     158procedure TFormMain.CheckBoxShowResultChange(Sender: TObject);
     159begin
     160  if CheckBoxShowResult.Checked <> ShowResult then begin
     161    ShowResult := CheckBoxShowResult.Checked;
     162    ReloadChart;
     163  end;
    147164end;
    148165
     
    177194
    178195procedure TFormMain.DateEdit1Change(Sender: TObject);
    179 begin
    180   IntervalTo := DateEdit1.Date + TimeOf(IntervalTo);
    181   UpdateInterval;
     196var
     197  NewIntervalTo: TDateTime;
     198begin
     199  NewIntervalTo := DateEdit1.Date + TimeOf(IntervalTo);
     200  if NewIntervalTo <> IntervalTo then begin
     201    IntervalTo := NewIntervalTo;
     202    UpdateInterval;
     203  end;
    182204end;
    183205
     
    228250
    229251procedure TFormMain.TimeEdit1Change(Sender: TObject);
    230 begin
    231   IntervalTo := DateOf(IntervalTo) + TimeEdit1.Time;
    232   UpdateInterval;
     252var
     253  NewIntervalTo: TDateTime;
     254begin
     255  NEwIntervalTo := DateOf(IntervalTo) + TimeEdit1.Time;
     256  if NewIntervalTo <> IntervalTo then begin
     257    IntervalTo := NewIntervalTo;
     258    UpdateInterval;
     259  end;
    233260end;
    234261
    235262procedure TFormMain.Translator1Translate(Sender: TObject);
    236263begin
     264  ComboBoxPeriod.Items[Integer(prDay)] := SDay;
     265  ComboBoxPeriod.Items[Integer(prWeek)] := SWeek;
     266  ComboBoxPeriod.Items[Integer(prMonth)] := SMonth;
     267  ComboBoxPeriod.Items[Integer(prYear)] := SYear;
    237268  Ean.Translate;
    238269end;
     
    447478  Ean: TEan;
    448479begin
     480  Chart1LineSeries1.BeginUpdate;
     481  Chart1LineSeries4.BeginUpdate;
    449482  Chart1LineSeries1.Clear;
    450   if ComboBoxEan.ItemIndex = -1 then Exit;
    451   Ean := TEan(ComboBoxEan.Items.Objects[ComboBoxEan.ItemIndex]);
    452   if not Assigned(Ean) then Exit;
    453   with Ean do begin
    454     for I := 0 to Values.Count - 1 do
    455       if (Values[I].Time >= IntervalFrom) and (Values[I].Time < IntervalTo) then
    456       Chart1LineSeries1.AddXY(Values[I].Time, MeasureToFloat(Values[I].ValueIn, 1 / 4));
    457   end;
    458 
     483  Chart1LineSeries4.Clear;
     484  if ComboBoxEan.ItemIndex <> -1 then begin
     485    Ean := TEan(ComboBoxEan.Items.Objects[ComboBoxEan.ItemIndex]);
     486    if Assigned(Ean) then
     487    with Ean do begin
     488      for I := 0 to Values.Count - 1 do
     489        if (Values[I].Time >= IntervalFrom) and (Values[I].Time < IntervalTo) then begin
     490          Chart1LineSeries1.AddXY(Values[I].Time, MeasureToFloat(Values[I].ValueIn, 1 / 4));
     491          if ShowResult then Chart1LineSeries4.AddXY(Values[I].Time, MeasureToFloat(Values[I].ValueOut, 1 / 4));
     492        end;
     493    end;
     494  end;
     495  Chart1LineSeries1.EndUpdate;
     496  Chart1LineSeries4.EndUpdate;
     497
     498  Chart1LineSeries2.BeginUpdate;
     499  Chart1LineSeries5.BeginUpdate;
    459500  Chart1LineSeries2.Clear;
     501  Chart1LineSeries5.Clear;
    460502  if ComboBoxEan2.ItemIndex <> -1 then begin
    461503    Ean := TEan(ComboBoxEan2.Items.Objects[ComboBoxEan2.ItemIndex]);
    462     if not Assigned(Ean) then Exit;
     504    if Assigned(Ean) then
    463505    with Ean do begin
    464506      for I := 0 to Values.Count - 1 do
    465         if (Values[I].Time >= IntervalFrom) and (Values[I].Time < IntervalTo) then
    466         Chart1LineSeries2.AddXY(Values[I].Time, MeasureToFloat(Values[I].ValueIn, 1 / 4));
    467     end;
    468   end;
    469 
     507        if (Values[I].Time >= IntervalFrom) and (Values[I].Time < IntervalTo) then begin
     508          Chart1LineSeries2.AddXY(Values[I].Time, MeasureToFloat(Values[I].ValueIn, 1 / 4));
     509          if ShowResult then Chart1LineSeries5.AddXY(Values[I].Time, MeasureToFloat(Values[I].ValueOut, 1 / 4));
     510        end;
     511    end;
     512  end;
     513  Chart1LineSeries2.EndUpdate;
     514  Chart1LineSeries5.EndUpdate;
     515
     516  Chart1LineSeries3.BeginUpdate;
     517  Chart1LineSeries6.BeginUpdate;
    470518  Chart1LineSeries3.Clear;
     519  Chart1LineSeries6.Clear;
    471520  if ComboBoxEan3.ItemIndex <> -1 then begin
    472521    Ean := TEan(ComboBoxEan3.Items.Objects[ComboBoxEan3.ItemIndex]);
    473     if not Assigned(Ean) then Exit;
     522    if Assigned(Ean) then
    474523    with Ean do begin
    475524      for I := 0 to Values.Count - 1 do
    476         if (Values[I].Time >= IntervalFrom) and (Values[I].Time < IntervalTo) then
    477         Chart1LineSeries3.AddXY(Values[I].Time, MeasureToFloat(Values[I].ValueIn, 1 / 4));
    478     end;
    479   end;
     525        if (Values[I].Time >= IntervalFrom) and (Values[I].Time < IntervalTo) then begin
     526          Chart1LineSeries3.AddXY(Values[I].Time, MeasureToFloat(Values[I].ValueIn, 1 / 4));
     527          if ShowResult then Chart1LineSeries6.AddXY(Values[I].Time, MeasureToFloat(Values[I].ValueOut, 1 / 4));
     528        end;
     529    end;
     530  end;
     531  Chart1LineSeries3.EndUpdate;
     532  Chart1LineSeries6.EndUpdate;
    480533end;
    481534
     
    504557  ComboBoxUnit.ItemIndex := Integer(ValueUnit);
    505558  ComboBoxPeriod.ItemIndex := Integer(Period);
     559  CheckBoxShowResult.Checked := ShowResult;
    506560end;
    507561
     
    538592    OwnersFileName := ReadStringWithDefault('OwnersFileName', OwnersFileName);
    539593    PageControl1.TabIndex := ReadIntegerWithDefault('ActiveTab', PageControl1.TabIndex);
     594    ShowResult := ReadBoolWithDefault('ShowResult', ShowResult);
    540595  finally
    541596    Free;
     
    559614    WriteString('OwnersFileName', OwnersFileName);
    560615    WriteInteger('ActiveTab', PageControl1.TabIndex);
     616    WriteBool('ShowResult', ShowResult);
    561617  finally
    562618    Free;
Note: See TracChangeset for help on using the changeset viewer.