?? 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 + -