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

📄 unitauto.pas

📁 一个多元非线性回归分析源码以及其中的公式列表
💻 PAS
📖 第 1 页 / 共 5 页
字号:
unit UnitAuto;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TextZhi_Hss, StdCtrls, ExtCtrls, Grids, ValEdit, Menus, Clipbrd,
  ComCtrls, DB, DBClient, DBCtrls, DBGrids, ActnList,
  ActnMan, Placemnt, ToolWin, AppEvent, RxCalc, ImgList, Spin, Tabs,
  Buttons, UnitRunExe, Compile_Hss, UnitFP, RXCtrls, UnitLinearRegress,
  ExtDlgs, Animate, GIFCtrl, Jpeg, RunExe_Hss, RxCombos,
  math, CheckLst, Mask, ToolEdit,
  UnitfrmLook, UnitfrmEditFunction;

type
  TfrmMain = class(TForm)
    MainMenu1: TMainMenu;
    M_File: TMenuItem;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    DataSourceDataOld: TDataSource;
    Panel1: TPanel;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ImageList1: TImageList;
    TabSheet4: TTabSheet;
    ToolButton10: TToolButton;
    ClientDataSetPType: TClientDataSet;
    DataSourcePType: TDataSource;
    ClientDataSetTempData: TClientDataSet;
    Panel2: TPanel;
    Panel5: TPanel;
    Label5: TLabel;
    ComboBoxFunction: TComboBox;
    Button1: TButton;
    DBGridPL: TDBGrid;
    Splitter1: TSplitter;
    BitBtn1: TBitBtn;
    ClientDataSetPTypeZF: TClientDataSet;
    ClientDataSetPTypeZFF_PT_ID: TIntegerField;
    ClientDataSetPTypeZFF_PT_Name: TStringField;
    ClientDataSetPTypeF_TP_NAME: TStringField;
    ClientDataSetPTypeF_TP_ZF_ID: TIntegerField;
    ClientDataSetPTypeF_TP_MIN: TFloatField;
    ClientDataSetPTypeF_TP_MAX: TFloatField;
    ClientDataSetPTypeF_TP_ZF_NAME: TStringField;
    ClientDataSetPTypeF_TP_DEFAULT: TFloatField;
    DBNavigator1: TDBNavigator;
    M_Help: TMenuItem;
    ActionManager1: TActionManager;
    ClientDataSetTempPL: TClientDataSet;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    ToolButton11: TToolButton;
    ToolButton12: TToolButton;
    ToolButton13: TToolButton;
    ToolButton14: TToolButton;
    ToolButton15: TToolButton;
    Button2: TButton;
    ClientDataSetPTypeF_TP_Precision: TIntegerField;
    RxCheckListBox1: TRxCheckListBox;
    RxCheckListBox2: TRxCheckListBox;
    Bevel1: TBevel;
    Panel3: TPanel;
    Bevel2: TBevel;
    Button4: TButton;
    ActionExit: TAction;
    ActionStart: TAction;
    ActionPause: TAction;
    ActionContinue: TAction;
    ActionStop: TAction;
    ActionOpenData: TAction;
    ActionSaveData: TAction;
    ActionOpenP: TAction;
    ActionSaveP: TAction;
    ActionSaveResult: TAction;
    ActionSavePicture: TAction;
    ActionHelpMain: TAction;
    ActionAbout: TAction;
    A1: TMenuItem;
    S1: TMenuItem;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    A2: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    A3: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    ActionRunLineR: TAction;
    Panel4: TPanel;
    Panel6: TPanel;
    Panel7: TPanel;
    OpenDataDialog: TOpenDialog;
    SaveDataDialog: TSaveDialog;
    OpenPTDialog: TOpenDialog;
    SavePTDialog: TSaveDialog;
    SavePictureDialog: TSaveDialog;
    SaveResultDialog: TSaveDialog;
    ActionListCompile: TActionList;
    ActionRun: TAction;
    ActionRefreshResult: TAction;
    ActionRefreshPicture: TAction;
    GroupBox3: TGroupBox;
    Label1: TLabel;
    ComboBox1: TComboBox;
    Label2: TLabel;
    GroupBox5: TGroupBox;
    Label6: TLabel;
    Label7: TLabel;
    ComboBox6: TComboBox;
    ComboBox5: TComboBox;
    Panel8: TPanel;
    ScrollBox1: TScrollBox;
    Rx_To_GIF: TRxGIFAnimator;
    Panel9: TPanel;
    ColorComboBox1: TColorComboBox;
    ColorComboBox2: TColorComboBox;
    ColorComboBox3: TColorComboBox;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    EditZong: TEdit;
    Button7: TButton;
    Bevel3: TBevel;
    Panel10: TPanel;
    Label12: TLabel;
    EditMin: TEdit;
    EditMax: TEdit;
    Label13: TLabel;
    Label14: TLabel;
    EditPn: TEdit;
    Timer1: TTimer;
    ImageMain: TImage;
    ImageTemp: TImage;
    ToolButton3: TToolButton;
    Panel11: TPanel;
    Panel12: TPanel;
    DBNavigatorDataOld: TDBNavigator;
    DBGridDataOld: TDBGrid;
    GroupBoxPic: TGroupBox;
    ScrollBox2: TScrollBox;
    ImageXY: TImage;
    ComboBox2: TComboBox;
    ComboBox3: TComboBox;
    Label3: TLabel;
    Label11: TLabel;
    GroupBox4: TGroupBox;
    Label15: TLabel;
    ComboBox4: TComboBox;
    Label16: TLabel;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Panel13: TPanel;
    ValueListEditorPResult: TValueListEditor;
    ValueListEditorVResult: TValueListEditor;
    ValueListEditorSaveTemp: TValueListEditor;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    ValueListEditorConfig: TValueListEditor;
    ClientDataSetPTypeOpenTemp: TClientDataSet;
    StringField1: TStringField;
    StringField2: TStringField;
    IntegerField1: TIntegerField;
    FloatField1: TFloatField;
    FloatField2: TFloatField;
    FloatField3: TFloatField;
    IntegerField2: TIntegerField;
    BitBtn6: TBitBtn;
    PopupMenuPic: TPopupMenu;
    N17: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    PopupMenuPVResult: TPopupMenu;
    C1: TMenuItem;
    S2: TMenuItem;
    N20: TMenuItem;
    PopupMenuMPic: TPopupMenu;
    MenuItem1: TMenuItem;
    ListBoxhistory: TListBox;
    ActionCompile: TAction;
    ActionCompile1: TMenuItem;
    N21: TMenuItem;
    ActionHelp1: TAction;
    GroupBox6: TGroupBox;
    LabelXX: TLabel;
    LabelYY: TLabel;
    EditData: TMemo;
    TabDataIndex: TTabSet;
    SpinButtonChangeFunctionIndex: TSpinButton;
    CheckBoxEditDataQuestion: TCheckBox;
    ImageLookSoom: TImage;
    Button3: TButton;
    Button5: TButton;
    GroupBox7: TGroupBox;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    Label4: TLabel;
    MemoPiexWH: TMemo;
    ActionGotoExcel: TAction;
    N22: TMenuItem;
    N23: TMenuItem;
    Excel1: TMenuItem;
    ActionExcelCopy: TAction;
    ActionExcelPaste: TAction;
    Excel2: TMenuItem;
    Excel3: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    RadioButton1: TRadioButton;
    RadioButton3: TRadioButton;
    StatusBarData: TStatusBar;
    procedure BitBtn1Click(Sender: TObject);
    procedure ActionRunLineRExecute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ActionStartExecute(Sender: TObject);
    procedure ActionSaveDataExecute(Sender: TObject);
    procedure ActionOpenDataExecute(Sender: TObject);
    procedure ActionOpenPExecute(Sender: TObject);
    procedure ActionSavePExecute(Sender: TObject);
    procedure ActionSaveResultExecute(Sender: TObject);
    procedure ActionSavePictureExecute(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure ActionPauseExecute(Sender: TObject);
    procedure ActionContinueExecute(Sender: TObject);
    procedure ActionStopExecute(Sender: TObject);
    procedure ClientDataSetPTypeBeforePost(DataSet: TDataSet);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure ActionExitExecute(Sender: TObject);
    procedure ActionAboutExecute(Sender: TObject);
    procedure ActionRunExecute(Sender: TObject);
    procedure ActionRefreshResultExecute(Sender: TObject);
    procedure EditMinKeyPress(Sender: TObject; var Key: Char);
    procedure EditPnKeyPress(Sender: TObject; var Key: Char);
    procedure ActionRefreshPictureExecute(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure ScrollBox1Resize(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure ComboBoxFunctionEnter(Sender: TObject);
    procedure ValueListEditorVResultDrawCell(Sender: TObject; ACol,
      ARow: Integer; Rect: TRect; State: TGridDrawState);
    procedure Button2Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure N17Click(Sender: TObject);
    procedure C1Click(Sender: TObject);
    procedure MenuItem1Click(Sender: TObject);
    procedure EditDataxcKeyPress(Sender: TObject; var Key: Char);
    procedure ComboBoxFunctionKeyPress(Sender: TObject; var Key: Char);
    procedure ListBoxhistoryDblClick(Sender: TObject);
    procedure Panel11Exit(Sender: TObject);
    procedure ActionCompileExecute(Sender: TObject);
    procedure ActionHelp1Execute(Sender: TObject);
    procedure ActionHelpMainExecute(Sender: TObject);
    procedure ImageXYMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ImageMainMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ClientDataSetDataAfterPost(DataSet: TDataSet);
    procedure ClientDataSetDataAfterScroll(DataSet: TDataSet);
    procedure DBGridDataOldTitleClick(Column: TColumn);
    procedure ClientDataSetDataAfterDelete(DataSet: TDataSet);
    procedure ClientDataSetDataAfterClose(DataSet: TDataSet);
    procedure TabDataIndexChange(Sender: TObject; NewTab: Integer;
      var AllowChange: Boolean);
    procedure SpinButtonChangeFunctionIndexDownClick(Sender: TObject);
    procedure SpinButtonChangeFunctionIndexUpClick(Sender: TObject);
    procedure ImageLookSoomClick(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure DBGridDataOldMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure ComboBox4KeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ActionExcelCopyExecute(Sender: TObject);
    procedure ActionExcelPasteExecute(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain  : TfrmMain;
  PicXMin,PicXmax,PicYMin,PicYMax  : Extended;
  PPXMin,PPXmax,PPYMin,PPYMax      : integer;
  PxXMin,PxXmax,PyYMin,PyYMax      : Extended;

  ssX0,ssX1,ssY0,ssY1              : integer;

implementation

uses UnitfrmAboutM, UnitfrmFlash, UnitPropertiesSet, UnitfrmLRGetData;


{$R *.dfm}


procedure TfrmMain.BitBtn1Click(Sender: TObject);
var
  runText :string;
  fEQ     :integer;
  PList  :array of TParameterList;
  pName   :string;
  i       :integer;

begin  
  self.PageControl1.ActivePageIndex:=1;
  if(ActionPause.Enabled)or(ActionContinue.Enabled)or(ActionStop.Enabled)then
  begin
    application.MessageBox('请先停止正在进行的任务,然后再重新执行编译!','提示:',MB_OK+MB_ICONWARNING);
    exit;
  end;

  try
    if self.ClientDataSetPType.RecordCount<>0 then
    begin
      if application.MessageBox('要重新生成参数列表吗?','确认:',MB_YESNO+MB_ICONWARNING)=id_yes then
      begin
        while not self.ClientDataSetPType.Eof do
          self.ClientDataSetPType.Delete;
      end
      else
      begin
        exit;
      end;
    end;
    runText:=self.ComboBoxFunction.Text;
    if runText='' then
    begin
      application.MessageBox('请先输入表达式,然后再重新执行编译!','提示:',MB_OK+MB_ICONWARNING);
      exit;
    end;
    case GetEQ(runText,fEQ) of
      0:
        runText:=runText;
      1:
        runText:='('+copy(runText,1,fEQ-1)+')-('+copy(runText,fEq+1,length(runText)-fEQ)+')';
      else
      begin
        application.MessageBox('表达式错误,过多的"="。','错误:',MB_OK+MB_ICONERROR);
        exit;
      end;
    end;
  except
    application.MessageBox('参数数据处理过程中发生错误!','错误:',MB_OK+MB_ICONERROR);
    exit;
  end;

    setlength(abcMax,0);
    dMax:=0;

    if not (Compile=nil) then Compile.Free;
    Compile:=TCompile.Create();

  try
    Compile.SetText(runText);
    if  Compile.GetError<>'' then
    begin
      application.MessageBox(pchar('发生错误,'+Compile.GetError),'错误:',MB_OK+MB_ICONERROR);
      //Compile.Free;
      exit;
    end ;
    setLength(PList,Compile.GetParameterCount);
    Compile.GetParameterList(PList);
    setLength(PDList,0);
    setLength(abcList,0);
    for i:=high(PList) downto low(PList) do
    begin
      pName:=copy(PList[i].CName,2,length(PList[i].CName)-1) ;
      if PList[i].IfConst=true then
        continue
      else if (IFInDCount(pName)) then
      begin
        setLength(PDList,high(PDList)+2);
        PDList[high(PDList)].CName:=PName;
        PDList[high(PDList)].CAddress:=PList[i].CAddress;
        PDList[high(PDList)].Index:=strtoint(copy(PName,2,length(PName)-1));
      end
      else
      begin
        setLength(abcList,high(abcList)+2);
        abcList[high(abcList)].CName:=pName;
        abcList[high(abcList)].CAddress:=PList[i].CAddress;
        abcList[high(abcList)].IfConst:=PList[i].IfConst;
        abcList[high(abcList)].PType:=1;
        abcList[high(abcList)].MinV:=0;

⌨️ 快捷键说明

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