📄 unitauto.pas
字号:
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 + -