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

📄 showdrawunit.pas

📁 基于高速铁路周边电动势计算的关键
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit ShowDrawUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TeEngine, Series, TeeProcs, Chart, ExtCtrls, ComCtrls, ToolWin,
  Menus, ExtDlgs,Math, StdCtrls, Spin, Buttons, RzTabs;

type
  TShowDrawForm = class(TForm)
    Panel2: TPanel;
    Splitter1: TSplitter;

    Chart2: TChart;
    LineSeries1: TLineSeries;
    LineSeries2: TLineSeries;

    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    ToolButton2: TToolButton;
    ToolButton4: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton10: TToolButton;
    ToolButton8: TToolButton;
    dlgSave1: TSaveDialog;

    Chart1: TChart;
    Series1: TLineSeries;
    Series2: TLineSeries;
    Panel1: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    SpinEdit1: TSpinEdit;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    SpeedButton2: TSpeedButton;
    SpeedButton1: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpinEdit2: TSpinEdit;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Series3: TPointSeries;
    Series4: TPointSeries;
    Series5: TPointSeries;
    Label1: TLabel;
    Label2: TLabel;
    pm2: TPopupMenu;
    N2: TMenuItem;
    btn1: TToolButton;
    N3: TMenuItem;
    N4: TMenuItem;
    RzPageControl1: TRzPageControl;
    TabSheet1: TRzTabSheet;
    TabSheet2: TRzTabSheet;
    cht1: TChart;
    lbl1: TLabel;
    LineSeries3: TLineSeries;
    LineSeries4: TLineSeries;
    PointSeries1: TPointSeries;
    spl1: TSplitter;
    cht2: TChart;
    lbl2: TLabel;
    LineSeries5: TLineSeries;
    LineSeries6: TLineSeries;
    PointSeries2: TPointSeries;

    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ToolButton8Click(Sender: TObject);
    procedure Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure ToolButton10Click(Sender: TObject);
    procedure Chart1AfterDraw(Sender: TObject);
    procedure SpinEdit1Change(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
    procedure SpinEdit2Change(Sender: TObject);
    procedure Chart2M(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Chart2AfterDraw(Sender: TObject);
    procedure Series1AfterDrawValues(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure Chart1Click(Sender: TObject);
    procedure Chart2Click(Sender: TObject);
    procedure btn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure RzPageControl1Change(Sender: TObject);
    procedure cht2MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure cht2AfterDraw(Sender: TObject);
    procedure LineSeries5AfterDrawValues(Sender: TObject);
    procedure cht1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure cht1AfterDraw(Sender: TObject);
    procedure LineSeries3AfterDrawValues(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);

    

  private
    { Private declarations }
  public

    { Public declarations }
    OldX,OldY:Longint;
    OldX2,OldY2,OldX3,OldY3,OldX4,OldY4:Longint;
    CrossHairColor:TColor;
    CrossHairStyle:TPenStyle;
    Procedure HorizScroll(Const Percent:Double;thechart:TChart);
    Procedure VertScroll(Const Percent:Double;thechart:TChart);
    Procedure ScrollAxis(Axis:TChartAxis; Const Percent:Double);

    end;

var
  ShowDrawForm: TShowDrawForm;

implementation

uses Main, DrawInfor, Printers, GlobalVarDefs, Progress, WaitPas_Unit,
  OutToExcelUnit;

{$R *.dfm}

procedure TShowDrawForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  MainForm.N9.Enabled:=False;
  Action:=caFree;
  delTabs('电动势图');
end;

procedure TShowDrawForm.ToolButton8Click(Sender: TObject);
begin
 DrawInforForm.ShowModal;
end;

procedure TShowDrawForm.Chart1MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
  { This procedure draws the crosshair lines }


  { This procedure draws the crosshair lines }
  Procedure DrawCross(AX,AY:Integer);
  begin
    With Chart1,Canvas do
    begin
      Pen.Color:=CrossHairColor;
      Pen.Style:=CrossHairStyle;
      Pen.Mode:=pmXor;
      Pen.Width:=1;
      MoveTo(ax,ChartRect.Top-Height3D);
      LineTo(ax,ChartRect.Bottom-Height3D);
      MoveTo(ChartRect.Left+Width3D,ay);
      LineTo(ChartRect.Right+Width3D,ay);
    end;
  end;

Var tmpX,tmpY:Double;
begin
  if (OldX<>-1) then
  begin
    DrawCross(OldX,OldY);  { draw old crosshair }
    OldX:=-1;
  end;

  { check if mouse is inside Chart rectangle }
  if PtInRect( Chart1.ChartRect, Point(X-Chart1.Width3D,Y+Chart1.Height3D)  ) then
  begin
    DrawCross(x,y);  { draw crosshair at current position }
    { store old position }
    OldX:=x;
    OldY:=y;
    { set label text }
    With Series1 do
    begin
      GetCursorValues(tmpX,tmpY);  { <-- get values under mouse cursor }
    MainForm.RzStatusPane2.Caption:='X:'+GetVertAxis.LabelValue(Round(tmpX))+
                      '米 '+
                      'Y:'+GetHorizAxis.LabelValue(Round(tmpY))+'米';
    end;
  end;
end;

procedure TShowDrawForm.FormCreate(Sender: TObject);
begin
  OldX :=-1;
  OldX2:=-1;
  OldX3:=-1;
  OldX4:=-1;                       { initialize variables }
  CrossHairColor:=clRed;
  CrossHairStyle:=psSolid;
  

end;

procedure TShowDrawForm.ToolButton10Click(Sender: TObject);
begin
 Close;
end;

procedure TShowDrawForm.Chart1AfterDraw(Sender: TObject);
begin
  OldX:=-1;  { Reset old mouse position }
end;

procedure TShowDrawForm.SpinEdit1Change(Sender: TObject);
begin
  try
      Chart1.MaxPointsPerPage:=SpinEdit1.Value;
      Chart1.UndoZoom

  except
    end;
end;

procedure TShowDrawForm.BitBtn5Click(Sender: TObject);
begin
 Chart1.ZoomPercent(115);
end;

procedure TShowDrawForm.BitBtn6Click(Sender: TObject);
begin
 Chart1.ZoomPercent(85);
end;

procedure TShowDrawForm.SpeedButton1Click(Sender: TObject);
begin
 HorizScroll(10,Chart1);
end;

procedure TShowDrawForm.SpeedButton4Click(Sender: TObject);
begin
 HorizScroll(-10,Chart1);
end;

procedure TShowDrawForm.SpeedButton2Click(Sender: TObject);
begin
  VertScroll(-10,Chart1);
end;

procedure TShowDrawForm.SpeedButton3Click(Sender: TObject);
begin
  VertScroll(10,Chart1);
end;
Procedure TShowDrawForm.HorizScroll(Const Percent:Double;thechart:TChart);
begin
  thechart.ZoomPercent(100);
  ScrollAxis(thechart.TopAxis,Percent);
  ScrollAxis(thechart.BottomAxis,Percent);
  
end;

Procedure TShowDrawForm.VertScroll(Const Percent:Double;thechart:TChart);
begin
  ScrollAxis(thechart.LeftAxis,Percent);
  ScrollAxis(thechart.RightAxis,Percent);
end;

Procedure TShowDrawForm.ScrollAxis(Axis:TChartAxis; Const Percent:Double);
var Amount:Double;
begin
  With Axis do
  begin
    Amount:=-((Maximum-Minimum)/(100.0/Percent));
    SetMinMax(Minimum-Amount,Maximum-Amount);
  end;
end;
procedure TShowDrawForm.ToolButton6Click(Sender: TObject);
begin
 if Messagebox(handle,'您确定要将数据导出到Excel中吗?','询问',MB_YESNO+MB_ICONQUESTION)=IDYES then begin
    OutToExcel.Create(true);
    progressform:=Tprogressform.Create(self);
    progressform.ShowModal;
end;
end;

procedure TShowDrawForm.BitBtn1Click(Sender: TObject);
begin
 Chart2.ZoomPercent(115);
end;

procedure TShowDrawForm.BitBtn2Click(Sender: TObject);
begin
 Chart2.ZoomPercent(85);
end;

procedure TShowDrawForm.SpeedButton6Click(Sender: TObject);
begin
 VertScroll(-10,Chart2);
end;

procedure TShowDrawForm.SpeedButton7Click(Sender: TObject);
begin
 HorizScroll(10,Chart2);
end;

procedure TShowDrawForm.SpeedButton5Click(Sender: TObject);
begin
 VertScroll(10,Chart2);
end;

⌨️ 快捷键说明

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