📄 main.~pas
字号:
RzEdit28.Text := inputv;
RzEdit6.Text :=mininputv;
RzEdit8.Text :=outputv;
RzEdit30.Text :=outputv;
RzEdit17.Text := loadper;
RzEdit31.Text := loadper;
RzEdit29.Text := loadper;
RzEdit13.Text := inputfre;
RzEdit16.Text :=batteryv;
RzEdit21.Text := temperature;
setflash;
end
else
IF (S='#') and (length(str)=22) and (s<>'V') THEN
begin
aa[0]:=str;
Result_Array1(AA);
rav:=aa[0];
raa:=aa[1];
rabatteryv:=aa[2];
raload:=aa[3];
RzEdit6.Text :=rav;
RzEdit33.Text :=rav;
RzEdit9.Text :=raa;
RzEdit34.Text :=raa;
RzEdit15.Text :=rabatteryv;
RzEdit35.Text :=rabatteryv;
RzEdit12.Text :=raload;
RzEdit36.Text :=raload;
end
else
// if (length(str)<>22) and ((s='V') or (S='#')) THEN
begin
Memo2.Text := Memo2.Text + Str;
Memo2.SelStart := Length(Memo1.Text);
Memo2.SelLength:= 0;
Memo2.Perform(EM_SCROLLCARET,0,0);
aa[0]:=memo2.Text ;
Result_Array2(AA);
company:=aa[0];
spec:=aa[1];
ver:=aa[2];
label27.Caption:=company;
label39.Caption:=spec;
label40.Caption :=ver;
end;
end;
function Tfmain.Result_Array(var Try_Array:array of string) : string ;
var
i:integer;
Astr,astr1:String;
begin
if Try_Array[0]='' then exit;
I:=pos('(',try_array[0]);
Astr:=copy(Try_Array[0],i+1,length(Try_Array[0])-i);
Try_Array[0]:=COPY(Try_Array[0],i+1,5);
Astr1:=copy(Astr,7,length(Astr)-5);
Try_Array[1]:=copy(Astr1,1,5);
Astr:='';
Astr:=copy(Astr1,7,length(Astr1)-5);
Try_Array[2]:=copy(Astr,1,5);
Astr1:='';
Astr1:=copy(Astr,7,length(Astr)-5);
Try_Array[3]:=copy(Astr1,1,3);
Astr:='';
Astr:=copy(Astr1,5,length(Astr1)-4);
Try_Array[4]:=copy(Astr,1,4);
Astr1:='';
Astr1:=copy(Astr,6,length(Astr)-5);
Try_Array[5]:=copy(Astr1,1,4);
Astr:='';
Astr:=copy(Astr1,6,length(Astr1)-5);
Try_Array[6]:=copy(Astr,1,4);
Astr1:='';
Astr1:=copy(Astr,6,length(Astr)-5);
Try_Array[7]:=copy(Astr1,1,8);
Try_Array[8]:=copy(Try_Array[7], 1,1);
Try_Array[9]:=copy(Try_Array[7], 2,1);
Try_Array[10]:=copy(Try_Array[7], 3,1);
Try_Array[11]:=copy(Try_Array[7], 4,1);
Try_Array[12]:=copy(Try_Array[7], 5,1);
Try_Array[13]:=copy(Try_Array[7], 6,1);
Try_Array[14]:=copy(Try_Array[7], 7,1);
Try_Array[15]:=copy(Try_Array[7], 8,1);
end;
function Tfmain.Result_Array1(var Try_Array1:array of string) : string ;
var
i:integer;
Astr,astr1:String;
begin
if Try_Array1[0]='' then exit;
I:=pos('#',try_array1[0]);
Astr:=copy(Try_Array1[0],i+1,length(Try_Array1[0])-i);
Try_Array1[0]:=COPY(Try_Array1[0],i+1,5);
Astr1:=copy(Astr,7,length(Astr)-6);
Try_Array1[1]:=copy(Astr1,1,3);
Astr:='';
Astr:=copy(Astr1,5,length(Astr1)-4);
Try_Array1[2]:=copy(Astr,1,5);
Astr1:='';
Astr1:=copy(Astr,7,length(Astr)-6);
Try_Array1[3]:=copy(Astr1,1,4);
end;
function Tfmain.Result_Array2(var Try_Array2:array of string) : string ;
var
i:integer;
Astr,astr1:String;
begin
if Try_Array2[0]='' then exit;
I:=pos('#',try_array2[0]);
Astr:=copy(Try_Array2[0],i+1,length(Try_Array2[0])-i);
Try_Array2[0]:=COPY(Try_Array2[0],i+1,15);
Astr1:=copy(Astr,17,length(Astr)-16);
Try_Array2[1]:=copy(Astr1,1,10);
Astr:='';
Astr:=copy(Astr1,12,length(Astr1)-11);
Try_Array2[2]:=copy(Astr,1,10);
end;
function getsystypes:boolean;
var
ver:tosversioninfo;
begin
result:=false;
ver.dwOSVersionInfoSize :=sizeof(tosversioninfo);
if getversionex(ver) then
if ver.dwPlatformId =VER_PLATFORM_WIN32_WINDOWS THEN
result:=true
else
result:=false;
end;
function setprivilege(sprivilegename: ansistring; benable: boolean): boolean;
var
TPPrev,TP: ttokenprivileges;
token: thandle;
dwretlen : dword;
begin
result:=false;
openprocesstoken(getcurrentprocess, TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, TOKEN);
TP.PrivilegeCount :=1;
IF lookupprivilegevalue(nil,pansichar(sprivilegename),TP.Privileges[0].LUID) then
begin
if benable then
tp.Privileges[0].Attributes :=SE_PRIVILEGE_ENABLED
ELSE
TP.Privileges[0].Attributes :=0;
dwretlen:=0;
result:= adjusttokenprivileges(token,false, tp, sizeof(tpprev), tpprev, dwretlen);
end;
closehandle(token);
end;
procedure Tfmain.Timer2Timer(Sender: TObject);
begin
button2.Click ;
end;
procedure Tfmain.Timer3Timer(Sender: TObject);
begin
button3.Click ;
end;
procedure Tfmain.Timer4Timer(Sender: TObject);
begin
button4.Click;
end;
procedure Tfmain.Button5Click(Sender: TObject);
begin
edit10.Text :=comopen;
end;
Procedure setflash ;
begin
if upstype='0'then
fmain.RzEdit27.Text :='ON_LINE'
ELSE
fmain.RzEdit27.Text :='STANDY';
/// 与UPS通讯
if upsfail='1' then
begin
fmain.BitBtn1.Visible :=true;
fmain.Edit1.Enabled :=true;
fmain.BitBtn7.Visible :=false;
end
else
begin
fmain.BitBtn1.Visible :=true;
fmain.Edit1.Enabled :=false;
fmain.BitBtn7.Visible :=false;
end;
////电池故障
if upsfail='1' then
begin
fmain.BitBtn2.Visible :=true;
fmain.Edit2.Enabled :=true;
fmain.BitBtn8.Visible :=false;
end
else
begin
fmain.BitBtn2.Visible :=true;
fmain.Edit2.Enabled :=false;
fmain.BitBtn8.Visible :=false;
end;
// beeperon,shutdown,upstype
////交流正常
if utility='1' then
begin
fmain.BitBtn2.Visible :=true;
fmain.Edit3.Enabled :=true;
fmain.BitBtn8.Visible :=false;
end
else
begin
fmain.BitBtn2.Visible :=true;
fmain.Edit3.Enabled :=false;
fmain.BitBtn8.Visible :=false;
end;
////旁路
if bypass='1' then
begin
fmain.BitBtn4.Visible :=true;
fmain.Edit4.Enabled :=true;
fmain.BitBtn10.Visible :=false;
end
else
begin
fmain.BitBtn4.Visible :=true;
fmain.Edit4.Enabled :=false;
fmain.BitBtn10.Visible :=false;
end;
////电池电压
if batterylow='1' then
begin
fmain.BitBtn5.Visible :=true;
fmain.Edit5.Enabled :=true;
fmain.BitBtn11.Visible :=false;
end
else
begin
fmain.BitBtn5.Visible :=true;
fmain.Edit5.Enabled :=false;
fmain.BitBtn11.Visible :=false;
end;
////UPS自我检测
if testin='1' then
begin
fmain.BitBtn6.Visible :=true;
fmain.Edit6.Enabled :=true;
fmain.BitBtn12.Visible :=false;
end
else
begin
fmain.BitBtn6.Visible :=true;
fmain.Edit6.Enabled :=false;
fmain.BitBtn12.Visible :=false;
end;
end;
procedure Tfmain.RzEdit5Change(Sender: TObject);
begin
if RzEdit6.Text ='' then
RzEdit6.Text:=RzEdit5.Text
else
if strtoint(RzEdit6.Text)>strtoint(RzEdit5.Text) then
RzEdit6.Text:= RzEdit5.Text;
if RzEdit7.Text='' then
RzEdit7.Text:=RzEdit5.Text
else
if strtoint(RzEdit7.Text)<strtoint(RzEdit5.Text) then
RzEdit7.Text:= RzEdit5.Text;
end;
procedure Tfmain.RzEdit8Change(Sender: TObject);
begin
if RzEdit9.Text ='' then
RzEdit9.Text:=RzEdit8.Text
else
if strtoint(RzEdit9.Text)>strtoint(RzEdit8.Text) then
RzEdit9.Text:= RzEdit8.Text;
if RzEdit10.Text='' then
RzEdit10.Text:=RzEdit8.Text
else
if strtoint(RzEdit10.Text)<strtoint(RzEdit8.Text) then
RzEdit10.Text:= RzEdit8.Text;
end;
procedure Tfmain.RzEdit13Change(Sender: TObject);
begin
if RzEdit12.Text ='' then
RzEdit12.Text:=RzEdit13.Text
else
if strtoint(RzEdit12.Text)>strtoint(RzEdit13.Text) then
RzEdit12.Text:= RzEdit13.Text;
if RzEdit11.Text='' then
RzEdit11.Text:=RzEdit13.Text
else
if strtoint(RzEdit11.Text)<strtoint(RzEdit13.Text) then
RzEdit11.Text:= RzEdit13.Text;
end;
procedure Tfmain.RzEdit16Change(Sender: TObject);
begin
if RzEdit15.Text ='' then
RzEdit15.Text:=RzEdit16.Text
else
if strtoint(RzEdit15.Text)>strtoint(RzEdit16.Text) then
RzEdit15.Text:= RzEdit16.Text;
if RzEdit14.Text='' then
RzEdit14.Text:=RzEdit16.Text
else
if strtoint(RzEdit14.Text)<strtoint(RzEdit16.Text) then
RzEdit14.Text:= RzEdit16.Text;
end;
procedure Tfmain.RzEdit17Change(Sender: TObject);
begin
if RzEdit18.Text ='' then
RzEdit18.Text:=RzEdit17.Text
else
if strtoint(RzEdit18.Text)>strtoint(RzEdit17.Text) then
RzEdit18.Text:= RzEdit17.Text;
if RzEdit19.Text='' then
RzEdit19.Text:=RzEdit17.Text
else
if strtoint(RzEdit19.Text)<strtoint(RzEdit17.Text) then
RzEdit19.Text:= RzEdit17.Text;
end;
procedure Tfmain.RzEdit21Change(Sender: TObject);
begin
if RzEdit22.Text ='' then
RzEdit22.Text:=RzEdit21.Text
else
if strtoint(RzEdit22.Text)>strtoint(RzEdit21.Text) then
RzEdit22.Text:= RzEdit21.Text;
if RzEdit23.Text='' then
RzEdit23.Text:=RzEdit21.Text
else
if strtoint(RzEdit23.Text)<strtoint(RzEdit21.Text) then
RzEdit23.Text:= RzEdit21.Text;
end;
procedure Tfmain.recordtimerTimer(Sender: TObject);
var
qrytemp:tadoquery;
begin
qrytemp:=tadoquery.Create(self);
qrytemp.Connection :=fmain.dbcon ;
qrytemp.SQL.Clear ;
qrytemp.SQL.Text :='insert into data(daydata,timedata,inputv,mininputv,outputv,loadper,' +
'inputfre,batteryv,temperature,state,rav,raa,rabatteryv,raload,company,'+
'spec,ver,beeperon,shutdown,testin,upstype,upsfail,bypass,batterylow,utility)'+
' values(:daydata,:timedata,:inputv,:mininputv,:outputv,:loadper,'+
':inputfre,:batteryv,:temperature,:state,:rav,:raa,:rabatteryv,:raload,:company,'+
' :spec,:ver,:beeperon,:shutdown,:testin,:upstype,:upsfail,:bypass,:batterylow,:utility)';
QryTemp.Parameters.Items[0].Value:=date();
QryTemp.Parameters.Items[1].Value:=time() ;
QryTemp.Parameters.Items[2].Value:=inputv ;
QryTemp.Parameters.Items[3].Value:=mininputv ;
QryTemp.Parameters.Items[4].Value:=outputv;
QryTemp.Parameters.Items[5].Value:=loadper ;
QryTemp.Parameters.Items[6].Value:=inputfre ;
QryTemp.Parameters.Items[7].Value:=batteryv ;
QryTemp.Parameters.Items[8].Value:=temperature;
QryTemp.Parameters.Items[9].Value:=state ;
QryTemp.Parameters.Items[10].Value:=rav ;
QryTemp.Parameters.Items[11].Value:=raa;
QryTemp.Parameters.Items[12].Value:=rabatteryv ;
QryTemp.Parameters.Items[13].Value:=raload ;
QryTemp.Parameters.Items[14].Value:=company;
QryTemp.Parameters.Items[15].Value:=spec ;
QryTemp.Parameters.Items[16].Value:=ver ;
QryTemp.Parameters.Items[17].Value:=beeperon;
QryTemp.Parameters.Items[18].Value:=shutdown ;
QryTemp.Parameters.Items[19].Value:=testin ;
QryTemp.Parameters.Items[20].Value:=upstype;
QryTemp.Parameters.Items[21].Value:=upsfail ;
QryTemp.Parameters.Items[22].Value:=bypass ;
QryTemp.Parameters.Items[23].Value:=batterylow;
QryTemp.Parameters.Items[24].Value:=utility ;
qrytemp.ExecSQL ;
qrytemp.Close;
qrytemp.Free ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -