📄 unitpublic.pas
字号:
unit UnitPublic;
interface
uses
IniFiles,SysUtils,Forms,Dialogs,CommClass,Classes,StdCtrls,Windows
, Messages
, ExtCtrls
, ComCtrls
, Registry
, TOffThreadClass
, TOnThreadClass
, TTimeThreadClass
, TQueryThreadClass
, TMediaPlayerClass;
//******************************************************************************
//**********************自定义函数很过程****************************************
function LoadIcon:String;
function MainPicture:String;
function NowWeek(nowdate:TDateTime):String;
function ReadUportSetEquipment(Option:String):String;
function ReadUportOption(Equipment:String):String;
function TimeOnOff:String;
procedure OnTime;
procedure OffTime;
procedure OpenMusic(ContAddr:Integer;TerminalAddr:Integer;UpoertAddr:Integer);
procedure RecordWarnInfo(nEquipment_NO:String;nEquipment_Name:String);
procedure ReadImageInfo(nImageNO:String);
procedure LostWarn(nImageNO:String;nWarnImage:TImage;nWarnAnimate:TAnimate);
procedure WriteRegistry;
//******************************************************************************
var
MySpcomm : TSpcomm;
Myini : TIniFile;
TimeSet : String;
OpenTime : String;
CloseTime : String;
MyQueryThread: TQueryThread;
OnOff : String;
MyPlayer : TMyPlayer;
MusicLength : Integer; //TQueryThread查询时间间隔
WarnNumber : Integer; //系统设置的报警器对数
SoftMake : String;
SoftUserName : String;
SoftName : String;
ValuesStr : String;//读系统的连动报警信息的设置(0:不连动报警;1:连动报警)
ResultVlues : Integer; //报警的时候发的开关命令
LostVlues : Integer; //撤防的时候发的开关命令
LoginName : String;//操作人员
LoginType : String;//操作人员
RightStr : String;//操作权限
LoginTime : Tdatetime;
implementation
uses UnitDataModule, UnitMain;
function TimeOnOff:String;
begin
Myini:=TIniFile.Create(ExtractFileDir(application.Exename)+'\SystemSet.ini');
try
Result:=Myini.ReadString('TimeOnOffSet','OnOff','');
Myini.Free;
except
Myini.Free;
end;
end;
function LoadIcon:String;
begin
Myini:=TIniFile.Create(ExtractFileDir(application.Exename)+'\SystemSet.ini');
try
result:=Myini.ReadString('ICONSet','ICONName','');
Myini.Free;
except
Myini.Free;
end;
end;
function MainPicture:String;
begin
Myini:=TIniFile.Create(ExtractFileDir(application.Exename)+'\SystemSet.ini');
try
result :=Myini.ReadString('MainPictureSet','PictureName','');
Myini.Free;
except
Myini.Free;
end;
end;
function NowWeek(nowdate:TDateTime):String;
var
ADate: TDateTime;
days: array[1..7] of string;
begin
days[1] := '星期七';//'Sunday';
days[2] := '星期一';//'Monday';
days[3] := '星期二';//'Tuesday';
days[4] := '星期三';//'Wednesday';
days[5] := '星期四';//'Thursday';
days[6] := '星期五';//'Friday';
days[7] := '星期六';//'Saturday';
ADate := now;//StrToDate(Edit1.Text);
result:=days[DayOfWeek(ADate)];
//ShowMessage( '今天是:' + days[DayOfWeek(ADate)]);
end;
//通过命令代码读设备名称
function ReadUportSetEquipment(Option:String):String;
var
MyIni:TiniFile;
begin
MyIni:=TIniFile.Create(ExtractFileDir(application.Exename)+'\SystemSet.ini');
Result:=MyIni.ReadString('UportSetData',Option,'');
showmessage(Result);
MyIni.Free;
end;
//通过设备名称读命令代码
function ReadUportOption(Equipment:String):String;
var
MyIni:TiniFile;
begin
MyIni:=TIniFile.Create(ExtractFileDir(application.Exename)+'\SystemSet.ini');
Result:=MyIni.ReadString('UportSetData',Equipment,'');
MyIni.Free;
end;
//******************************************************************************
//打开TQueryThread线程
procedure OnTime;
begin
Try
MyQueryThread:=TQueryThread.Create(False);
except
Application.MessageBox('打开【定时开关】失败!请确认!',Pchar(Application.Title),MB_ICONWARNING);
Exit;
end;
end;
//******************************************************************************
//关闭TQueryThread线程
procedure OffTime;
begin
Try
if MyQueryThread<>nil then
begin
MyQueryThread.Terminate;
end;
except
Application.MessageBox('关闭【定时开关】失败!请确认!',Pchar(Application.Title),MB_ICONWARNING);
Exit;
end;
end;
//******************************************************************************
//查询报警音乐以及报警图片
procedure OpenMusic(ContAddr:Integer;TerminalAddr:Integer;UpoertAddr:Integer);
var
MusicName :String;
EquipmentNO :String;
EquipmentName :String;
Warn_Image :String;
begin
frm_main.PAvi.Visible:=True;
with frm_DataModule.ADO_QueryOpen do
begin
Close;
Sql.Clear;
Sql.Add('Select * from [Equipment] where Cont=:u0 and Terminal=:u1 and Uport=:u2');
Parameters[0].Value:=ContAddr;
Parameters[1].Value:=TerminalAddr;
Parameters[2].Value:=UpoertAddr;
try
Open;
if RecordCount>0 then
begin
EquipmentNO := FieldByName('Equipment_NO').AsVariant;
EquipmentName := FieldByName('Equipment_Name').AsVariant;
Warn_Image := FieldByName('WarnImage').AsVariant;
ReadImageInfo(Warn_Image);
MusicName := FieldByName('Warn_Music').AsVariant;
MusicName := ExtractFilePath(Application.ExeName)+'WarnMusic\'+MusicName;
MyPlayer.FileName := MusicName;
MyPlayer.Visible := False;
MyPlayer.Parent := frm_Main;
MyPlayer.Open;
MyPlayer.Play;
RecordWarnInfo(EquipmentNO,EquipmentName);
end;
except
end;
end;
end;
//******************************************************************************
//插入报警记录
procedure RecordWarnInfo(nEquipment_NO:String;nEquipment_Name:String);
begin
with frm_DataModule.ADO_QuerySearch do
begin
Close;
Sql.Clear;
Sql.Add('Select * from [WarnInfo] where nFlag=0 and Equipment_NO=:u0 ');
Parameters[0].Value:=nEquipment_NO;
try
Open;
if RecordCount=0 then
begin
with frm_DataModule.ADO_QueryInsert do
begin
Close;
Sql.Clear;
Sql.Add('Insert into [WarnInfo] (Equipment_NO,Equipment_Name,Warn_Time,StopWarn_Time) values (:u0,:u1,:u2,:u3)');
Parameters[0].Value:=nEquipment_NO;
Parameters[1].Value:=nEquipment_Name;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -