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

📄 unitpublic.pas

📁 delphi基于工业控制的串口通讯
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -