⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jvqchartdemofm.pas

📁 East make Tray Icon in delphi
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      Chart.Data.Value[2, I] := 1.0; // Use special Math.NaN const

    end;

    ListBox1.Items.Append(Chart.Data.DebugStr(I));
  end;

  with Chart.Options do
  begin
    Title := 'Chart Title';
    XAxisHeader := 'Date/Time';
    YAxisHeader := 'Readings (ng/m3)';

    if FNegValueFlag then
    begin
      PrimaryYAxis.YMin := -20;
      PrimaryYAxis.YMax := 20;
    end
    else
      PrimaryYAxis.YMin := 0;
    // Try out the pen styles:
    if ChartKind = ckChartStackedBar then
      PenStyle[0] := psClear // THIS IS HOW YOU TEMPORARILY HIDE ONE PEN!
    else
      PenStyle[0] := psSolid;
    PenStyle[1] := psDash;
    PenStyle[2] := psDot;

    if MenuSecondaryAxisMode.Checked then
    begin
      PenCount := 4; // Add a pen for right side demo.
      SecondaryYAxis.YMax := 140; // Example shows Q/A percentage. Experimental results
                                    // results are compared to expected results, and the
                                    // response percentage, is plotted from 0% to 140%
                                    // of expected value.

      SecondaryYAxis.YLegendDecimalPlaces := 2;

      PenSecondaryAxisFlag[3] := True; // Move pen index 3 (Fourth pen) to secondary axis.
      PenMarkerKind[3] := pmkDiamond;
      PenValueLabels[3] := true; // Label with text.
      PenStyle[3] := psClear; // Markers only, no lines.
      PenColor[3] := clGray;
      MarkerSize := 5; // Make 'em bigger.
    end
    else
    begin
      PenCount := 3;
      MarkerSize := 3; // Make 'em little
    end;

    PenLegends.Clear;
    PenLegends.Add('HgT');
    PenLegends.Add('Hg0');
    PenLegends.Add('Hg2+');
    if MenuSecondaryAxisMode.Checked then
      PenLegends.Add('Quality%');

    PenUnit.Clear;
    PenUnit.Add('ug/m3');
    PenUnit.Add('ug/m3');
    PenUnit.Add('ug/m3');
    if MenuSecondaryAxisMode.Checked then
      PenUnit.Add('%'); // Optional Pen in percentage scale.

    //ShowLegend := TRUE;
    Legend := clChartLegendBelow;

    //ChartKind := ckChartLine;
  end;
//    Chart.AutoFormatGraph;
  Chart.PlotGraph;

   //Chart.ResizeChartCanvas;
end;

procedure TJvChartDemoForm.FormResize(Sender: TObject);
begin
  if Assigned(Chart) then
    Chart.ResizeChartCanvas;
end;

procedure TJvChartDemoForm.ButtonBarChartClick(Sender: TObject);
begin
  Chart.Options.ChartKind := ckChartBar;
  NewValues;
  //Chart.PlotGraph;
end;

procedure TJvChartDemoForm.ButtonLineClick(Sender: TObject);
var
  I: Integer;
begin
  Chart.Options.ChartKind := ckChartLine;
  for I := 0 to Chart.Options.PenCount - 1 do
  begin
    Chart.Options.PenMarkerKind[I] := pmkNone;
  end;

  NewValues;
end;

procedure TJvChartDemoForm.ButtonLineMarkerClick(Sender: TObject);
//var
//  I:Integer;
begin
  Chart.Options.ChartKind := ckChartLine;
  Chart.Options.PenMarkerKind[0] := pmkDiamond; // demonstrate both Diamond and Circle Marks.
  Chart.Options.PenMarkerKind[1] := pmkDiamond;
  Chart.Options.PenMarkerKind[2] := pmkCircle;

  NewValues;
end;

procedure TJvChartDemoForm.ButtonStackedBarAveClick(Sender: TObject);
begin
  Chart.Options.ChartKind := ckChartStackedBarAverage;
  NewValues;
end;

procedure TJvChartDemoForm.ButtonStackedBarClick(Sender: TObject);
begin
  Chart.Options.ChartKind := ckChartStackedBar;
  NewValues;
end;

procedure TJvChartDemoForm.SpeedButton7Click(Sender: TObject);
begin
//  Chart.PivotData; // TODO: This causes exceptions. not sure why we want this.
end;

procedure TJvChartDemoForm.ButtonBarAveClick(Sender: TObject);
begin
  //Chart.ShowAsBarWithAve;
  Chart.Options.ChartKind := ckChartBarAverage;

  NewValues;
  //Chart.Plo
end;

procedure TJvChartDemoForm.ButtonPieClick(Sender: TObject);
begin
  // Chart.ShowAsPie;
  Chart.Options.ChartKind := ckChartPieChart;
end;

procedure TJvChartDemoForm.ButtonMarkersClick(Sender: TObject);
begin
  //Chart.ShowAsMark;
  Chart.Options.ChartKind := ckChartMarkers;
end;

procedure TJvChartDemoForm.SpinEdit1Change(Sender: TObject);
begin
//   Chart.Options.ColorScheme := SpinEdit1.Value;
//   Chart.PlotGraph;
end;

procedure TJvChartDemoForm.Button2Click(Sender: TObject);
begin
  Chart.PlotGraph;
end;

procedure TJvChartDemoForm.Button4Click(Sender: TObject);
begin
//  Chart.AutoFormatGraph;  WAP Removed. BAD CODE.
  Chart.PlotGraph;
end;

procedure TJvChartDemoForm.ButtonDeltaAverageClick(Sender: TObject);
begin
  Chart.Options.ChartKind := ckChartDeltaAverage;
end;

procedure TJvChartDemoForm.FormCreate(Sender: TObject);
begin
  FStatHgt := TStatArray.Create(10); // Initialize for rolling average of last 10 samples.
  FStatHg0 := TStatArray.Create(10);

  if Assigned(Chart) then
    //   Chart.ShowAsLineWithMark;
    NewValues;
end;

procedure TJvChartDemoForm.Panel2DblClick(Sender: TObject);
begin
  ShellExecute(HWND(nil), 'show', 'http://homepages.borland.com/jedi/jvcl/', nil, nil, SW_SHOW);
end;

procedure TJvChartDemoForm.ShowgapinLineChart1Click(Sender: TObject);
begin
  ShowgapinLineChart1.Checked := not ShowgapinLineChart1.Checked;
  ButtonLine.Down := true;
  NewValues;
end;

procedure TJvChartDemoForm.Print1Click(Sender: TObject);
begin
  if PrinterSetupDialog1.Execute then
    Chart.PrintGraph;
end;

procedure TJvChartDemoForm.Generatenewrandomvalues1Click(Sender: TObject);
begin
  NewValues;
end;

procedure TJvChartDemoForm.CopyToClipboard1Click(Sender: TObject);
begin
  Chart.GraphToClipboard;
end;

procedure TJvChartDemoForm.SetHeaderFont1Click(Sender: TObject);
begin
   {Get the current font for the Header text...}
  FontDialog1.Font.Assign(Chart.Options.AxisFont);

  if FontDialog1.Execute then
    {Set the font for the Header text...}
    Chart.Options.AxisFont := FontDialog1.Font;
  Chart.PlotGraph;
  Chart.Invalidate;
end;

procedure TJvChartDemoForm.About1Click(Sender: TObject);
begin
  Application.MessageBox(PChar(
    'JvChart comes from AABSoft Graph written by  M錼ten Henrichson, JVCL 3.0 ' +
    'version by Warren Postma.  '), 'About JvChart');
end;

procedure TJvChartDemoForm.AboutJVCL301Click(Sender: TObject);
begin
  TJvJVCLAboutForm.Execute(False);
end;

procedure TJvChartDemoForm.Scrolling1Click(Sender: TObject);
begin
  Scrolling1.Checked := not Scrolling1.Checked;
  Timer1.Enabled := Scrolling1.Checked;
end;

procedure TJvChartDemoForm.Timer1Timer(Sender: TObject);
begin
  Chart.Data.Scroll;
  _Generate;
  _StoreValue(Chart.Data.ValueCount - 1);
  Chart.PlotGraph;
end;

procedure TJvChartDemoForm.ShowDataInListbox1Click(Sender: TObject);
begin
  ShowDataInListbox1.Checked := not ShowDataInListbox1.Checked;
  ListBox1.Visible := ShowDataInListbox1.Checked;

  if not ShowDataInListbox1.Checked then
  begin
    Chart.CursorPosition := -1; // Invisible.
  end;
end;

procedure TJvChartDemoForm.LargeDataset576samples1Click(Sender: TObject);
begin
  LargeDataset576samples1.Checked := not LargeDataset576samples1.Checked;
  NewValues;
end;

procedure TJvChartDemoForm.DateTimeAxisModeClick(Sender: TObject);
begin
  DateTimeAxisMode.Checked := not DateTimeAxisMode.Checked;
  NewValues;
end;

procedure TJvChartDemoForm.FormDestroy(Sender: TObject);
begin
  FreeAndNil(FStatHgt);
  FreeAndNil(FStatHg0);
end;

procedure TJvChartDemoForm.PrintOptions1Click(Sender: TObject);
begin
  PrinterSetupDialog1.Execute;
end;

procedure TJvChartDemoForm.MenuSecondaryAxisModeClick(Sender: TObject);
begin
  MenuSecondaryAxisMode.Checked := not MenuSecondaryAxisMode.Checked;

  if MenuSecondaryAxisMode.Checked then
  begin
    ButtonLine.Down := true;
    ButtonLineClick(Sender);
  end
  else
    NewValues;
end;

procedure TJvChartDemoForm.ListBox1DblClick(Sender: TObject);
begin
  Chart.CursorPosition := ListBox1.ItemIndex; // Highlight one sample.
end;

procedure TJvChartDemoForm.ListBox1Click(Sender: TObject);
begin
  Chart.CursorPosition := ListBox1.ItemIndex; // Highlight one sample.
end;

procedure TJvChartDemoForm.MenuNegValueTestClick(Sender: TObject);
begin
  FNegValueFlag := MenuNegValueTest.Checked;
  NewValues;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -