📄 main_.pas
字号:
unit main_;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, ComCtrls, Menus, ActnList, ToolWin, ImgList, CLAbout, Flash,
CLTools, IVRPoint, CLPathLine, inifiles, ADOdb, Gauges, IVREngineType,
StdCtrls, fcCombo, fctreecombo,fcTreeview, Db, OleServer, JRO_TLB,jpeg,dbtables,
CLAdvanceVCL;
const
crMOVE = 1;
crPUSH = 2;
crLINE = 3;
crZOOMIN = 4;
crZOOMOUT = 5;
crGet = 6;
MaxRec = 2;
type
TIVRSelect = record
IVRPoint: TIVRPoint;
EventIndex: Integer;
ID: Integer;
end;
TIVRMenu = record
Caption: String;
iType, iContent, ID: Integer;
end;
TIVRDefine = record
id, iType: Integer;
vcName, vcValue, vcComment: String[50];
end;
TIVREventData = record
iType, iContent, Index: Integer;
Caption, Hints: String[100];
end;
PIVREventData = ^TIVREventData;
TIVRPropertyData = record
iType, iContent, Index: Integer;
Caption: String[100];
Must: Boolean;
pType: TPropertyType;
end;
PIVRPropertyData = ^TIVRPropertyData;
Tmain = class(TForm)
IVRPointTree: TTreeView;
Splitter1: TSplitter;
StatusBar1: TStatusBar;
ActionList1: TActionList;
MainMenu1: TMainMenu;
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
IVRPointTypeBar: TToolBar;
actFileOpen: TAction;
actFileClose: TAction;
actFileExit: TAction;
actFileSave: TAction;
actFileSaveAs: TAction;
actFileNew: TAction;
actHelpAbout: TAction;
actEditDeleteIVR: TAction;
actEditProperty: TAction;
actEditRename: TAction;
actEditInputPointer: TAction;
actHelpVersion: TAction;
F1: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
IVRStudio1: TMenuItem;
N7: TMenuItem;
H1: TMenuItem;
N8: TMenuItem;
SavePopupMenu: TPopupMenu;
IVRImage: TImageList;
N9: TMenuItem;
MainImage: TImageList;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
N10: TMenuItem;
N11: TMenuItem;
TreePopupMenu: TPopupMenu;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
EventPopup: TPopupMenu;
IVR1: TMenuItem;
IVR2: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
IVR3: TMenuItem;
N20: TMenuItem;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
CLAbout: TCLAbout;
N21: TMenuItem;
N22: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
N25: TMenuItem;
N26: TMenuItem;
actProjectProperty: TAction;
P1: TMenuItem;
N27: TMenuItem;
S1: TMenuItem;
acfSetupGernal: TAction;
N28: TMenuItem;
ToolButton6: TToolButton;
ToolButton12: TToolButton;
actProjectDefine: TAction;
N29: TMenuItem;
ToolButton13: TToolButton;
ToolButton14: TToolButton;
EnginePopup: TPopupMenu;
actProjectBuild: TAction;
ToolButton15: TToolButton;
N30: TMenuItem;
actProjectCheck: TAction;
N31: TMenuItem;
ToolButton11: TToolButton;
ToolButton16: TToolButton;
ReOpen: TMenuItem;
ReOpen1: TMenuItem;
ReOpen2: TMenuItem;
ReOpen3: TMenuItem;
ReOpen4: TMenuItem;
ReOpen5: TMenuItem;
actSetupXPStyle: TAction;
XP1: TMenuItem;
N32: TMenuItem;
N33: TMenuItem;
ToolButton17: TToolButton;
Label1: TLabel;
N34: TMenuItem;
SubMenu: TMenuItem;
ViewMenu: TMenuItem;
ViewMenuMain: TMenuItem;
N35: TMenuItem;
N36: TMenuItem;
N37: TMenuItem;
N38: TMenuItem;
N1001: TMenuItem;
N39: TMenuItem;
N40: TMenuItem;
N41: TMenuItem;
N42: TMenuItem;
PopupPast: TPopupMenu;
N43: TMenuItem;
N44: TMenuItem;
N45: TMenuItem;
MenuExport: TMenuItem;
JetEngine1: TJetEngine;
actImport: TAction;
ToolButton18: TToolButton;
ToolButton19: TToolButton;
fcTreeCombo1: TfcTreeCombo;
MainBox: TCLScrollBox;
procedure FormCreate(Sender: TObject);
procedure actFileExitExecute(Sender: TObject);
procedure actHelpAboutExecute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure actFileSaveExecute(Sender: TObject);
procedure actEditDeleteIVRExecute(Sender: TObject);
procedure IVRPointTreeChange(Sender: TObject; Node: TTreeNode);
procedure actEditPropertyExecute(Sender: TObject);
procedure actEditRenameExecute(Sender: TObject);
procedure IVR3Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure actFileNewExecute(Sender: TObject);
procedure actFileCloseExecute(Sender: TObject);
procedure actFileOpenExecute(Sender: TObject);
procedure N22Click(Sender: TObject);
procedure actFileSaveAsExecute(Sender: TObject);
procedure actEditInputPointerExecute(Sender: TObject);
procedure MainBoxMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure actHelpVersionExecute(Sender: TObject);
procedure actProjectPropertyExecute(Sender: TObject);
procedure IVRPointTreeEdited(Sender: TObject; Node: TTreeNode;
var S: String);
procedure acfSetupGernalExecute(Sender: TObject);
procedure actProjectDefineExecute(Sender: TObject);
procedure actProjectBuildExecute(Sender: TObject);
procedure actProjectCheckExecute(Sender: TObject);
procedure ReOpenClick(Sender: TObject);
procedure actSetupXPStyleExecute(Sender: TObject);
procedure N33Click(Sender: TObject);
procedure SubMenuClick(Sender: TObject);
procedure ViewMenuMainClick(Sender: TObject);
procedure N36Click(Sender: TObject);
procedure N37Click(Sender: TObject);
procedure N1001Click(Sender: TObject);
procedure N44Click(Sender: TObject);
procedure N41Click(Sender: TObject);
procedure N43Click(Sender: TObject);
procedure MenuExportClick(Sender: TObject);
procedure actImportExecute(Sender: TObject);
procedure fcTreeCombo1Change(Sender: TObject);
procedure MainBoxResize(Sender: TObject);
private
ADOConnect : TADOConnection ;
MyDelayTime :Integer ; //延时时间(毫秒)
ActiveTree:TTreeView; //当前树 Ray
ActiveBox:TCLScrollBox; //当前画板 Ray
BoxList:TList; //画板链 Ray
NodeList :TList ; //子流程节点 Ray
fcNodeList :TList ; //node list of fcTreeCombo
Proc: TGauge; //进度条
IVRType: array of TToolButton; //项目类型
IVRPointMenu: array of TPopupMenu; //项目名称
ReOpenCount: Integer; //最近打开的菜单数
XPStyle: Boolean; //XP模式
SelectIVREvent: TIVRSelect; //刚刚选择的IVR
SelectIVRMenu: TIVRMenu; //刚刚选择的IVR菜单
SelectIVRForce: TIVRPoint; //焦点IVR
MenuCount: Integer;
//IVRName: TStringList; //IVR名字
IVREventData, IVRPropertyData: TList; //事件和属性
tmpEventIndex: Integer;
ProjectName: String; //项目名称
NeedCenter: Boolean; //需要自动对中
ShapeHeight ,ShapeWidth :Integer ; //边框高度、宽度
IsCopy :Boolean ; //是否在复制状态
CopySource :TIVRPoint ; //被复制的节点
CopyNode :TTreeNode ; //被复制的树节点
CopyID : Integer ;//复制子流程的ID
SubImage:TBitMap; //子流程图片BMP
SubJpeg:TJPEGImage ; //子流程图片BMP
function IndexOfIVRList(InIVRPoint: TIVRPoint): Integer; overload;
function IndexOfIVRList(IVRID: Integer): Integer; overload;
procedure IVRPointClick(Sender: TObject);
procedure OnIVRTitleMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure OnIVRTitleMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure OnIVREventMouseDown(Sender: TObject; EventIndex: Integer;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure OnIVRPointMove(Sender: TObject; X, Y: Integer);
procedure SetSomeMenuEnable;
procedure ConnectIVR(SourceIVR, DescIVR: TIVRPoint; Event: Integer);
function IndexOfPropertyList(iType, iContent, Index: Integer): Integer;
function IndexOfEventList(iType, iContent, Index: Integer): Integer;
procedure SelectIVRPointEvent(IVRPoint: TIVRPoint; Event: Integer);
procedure DeSelectIVRPointEvent;
procedure SelectIVRPointMenu(aCaption: String; iType, iContent, ID: Integer);
procedure DeSelectIVRPointMenu;
function IVRiTypeToMenu(iType: Integer): Integer;
function DefineIDToIndex(ID: Integer): Integer;
procedure BuildUseEngineIndex(Index: Integer);
procedure BuildClick(Sender: TObject);
function AddReOpenMenu(NowCount: Integer; MenuCaption: String): Integer;
procedure ForceIVR(IVR: TIVRPoint);
function DelSubProcess(Node:TTreeNode):Boolean; //删除子流程
procedure AddViewMenuItem(Menu:TMenuItem;s:String);
procedure DelNode(); //删除节点
procedure NewSaveFile(); //保存数据
function MyPost(ADO1,ADO2:TADOTable;ID:Integer;tmpIVR:TIVRPoint;Name:String):Integer; //保存函数
procedure NewOpenProject(ProjectPathName: String); //打开文件
procedure OpenSub(ADO1:TCustomADODataSet); //打开子流程
procedure CopySub(SourceNode :TTreeNode); //复制子流程
procedure CopySingle(SourceIVR :TIVRPoint);
procedure ExportFunction(SourceNode :TTreeNode;ADO1,ADO2:TADOTable);
procedure MakeImage(tmpBox:TCLScrollBox);
{ Private declarations }
public
NonInit :Boolean;
EngineList: TStringList; //编译引擎列表
EngineMemo: TStringList; //编译引擎说明
IVRTypeIndex: array of Integer; //对应的菜单索引的真正IVR索引
InSubID :Integer ; //导入子流程时的编号
NowID: Integer;
MainProgramPath: String;
OEM: Boolean; //是否OEM
DetailOwner, DetailMemo: String; //版本说明
Writer: String; //编辑者
CreateDate, ModifyDate: TDateTime; //项目创建日期
//INI配置参数
DefaultWrite: String; //默认编辑者
DefaultWidth, DefaultHeight: Integer;
StartType, StartContent: Integer; //开始节点值
StartCaption: String; //开始节点命名
IVRLineColor: TColor; //连线颜色
IVRPointColor: TColor; //节点选择的颜色
IVREventColor: TColor; //事件选择的颜色
DefaultEngine: Integer; //默认编译引擎
SubCaption:String ; //子流程名称 2002.09.04
SubProcess:Integer; //子流程标号 2002.09.03
SubiContent:Integer ;
SubStartCaption:String; //子流程开始名称 2002.09.04
SubStartiType :Integer; //子流程开始标号 2002.09.03
SubStartiContent:Integer;
SubEndCaption:String; //子流程结束名称 2002.09.04
SubEndiType:Integer; //子流程结束标号 2002.09.03
SubEndiContent:Integer;
//INI配置参数完
DefineValue: array of TIVRDefine; //变量定义
DefineCount: Integer; //变量数目
ValueStringList: TStringList; //每个通道变量定义
MainVersion, SecondVersion, ThirdVersion, BuildDate: Integer;
function AddIVRPoint(IVRCaption: String; iType, iContent, IDNumber,GodID: Integer): TIVRPoint;
function GetEventIndexOfNextID(WhoIVR: TIVRPoint; NextID: Integer): Integer;
function IVRIdToPoint(ID: Integer): TIVRPoint;
function MakeConnectionString(DBName: String): String;
function IVRMenuToiType(Menu: Integer): Integer;
procedure MakeProc(InMaxValue, PanelIndex: Integer);
procedure IncProc(IncValue: Integer = 1);
procedure DeleProc;
procedure OnLineMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure SetBuildBtnCaption;
function CenterIVR(IVRID: Integer): Boolean;
function ZipData(ProjectName:String):Boolean;
function IVRIDToNode(ID: Integer): TTreeNode;
procedure insub(ADOFunList:TCustomADODataSet;ADOFun:TADOQuery);
procedure ImportSubProcess(ADO1:TCustomADODataSet;IsTop:Boolean);
procedure UpSubLink();
Procedure OnIVRDoubleClick(Sender: TObject); //双击
function MyAddBox(Name :String;NoMins:Boolean;AtFirst:Boolean):TCLScrollBox;
Procedure ShowSubEx();
Procedure BoxCaption(Name:String);
Procedure SetfcTreeCom(fcNode :TfcTreeNode;Value:String);
function FindNode():TTreeNode;
procedure ImportProject(ImportDataName: String); //打开文件
procedure InSubEx(ADOFunList:TCustomADODataSet;ADOFun:TADOQuery);
{ Public declarations }
end;
var
main: Tmain;
implementation
uses property_, ProjectProperty_, SetupGernal_, define_, SelectIVR_,
viewsub, test, Loading;
{$R *.DFM}
//窗体建立事件
procedure Tmain.FormCreate(Sender: TObject);
var
i, j: Integer;
tmpMenuItem: TMenuItem;
s: String;
tmpProperty: PIVRPropertyData;
tmpEvent: PIVREventData;
FindFileDat: TSearchRec;
GetVersion: TGetVersion;
dllHandle: THandle;
dllVer: TEngineVersionDat;
tmpIVRType: TTreeNode;
begin
MainProgramPath := ExtractFilePath(Application.ExeName);
NeedCenter := False;
ShapeHeight :=10;
ShapeWidth :=10;
StatusBar1.Panels.Items[3].Text := '';
StatusBar1.Panels.Items[4].Text := '';
EngineList := TStringList.Create();
EngineMemo := TStringList.Create();
IVRPropertyData := TList.Create();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -