📄 main.pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,shellapi,DateUtils, ComCtrls, ExtCtrls, Menus,
WinSkinData, jpeg;
type
TMainForm = class(TForm)
Button3: TButton;
sb: TStatusBar;
GroupBox1: TGroupBox;
Label2: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Edit2: TEdit;
Button4: TButton;
Button5: TButton;
GroupBox2: TGroupBox;
Label3: TLabel;
Label4: TLabel;
cb1: TComboBox;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
cb2: TComboBox;
Label8: TLabel;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Image1: TImage;
Timer1: TTimer;
notimenu: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
SkinData1: TSkinData;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure savetofile;
procedure loadfromfile;
procedure TcFile(fn:string);
procedure ZtFile(fn:string);
procedure WndProc(var Mymsg: TMessage);override;
end;
var
MainForm: TMainForm;
nd:NotifyIconData;
const
WM_TRAYNOTIFY=WM_USER+1;//定义通知消息
implementation
uses ll_form,dm_unit,dataadmin;
{$R *.dfm}
procedure TMainForm.Button1Click(Sender: TObject);
begin
edit1.Text:=showllform(edit1.Text);
end;
procedure TMainForm.Button2Click(Sender: TObject);
begin
ShellExecute(self.Handle,'explore',pchar(edit1.Text),nil,nil,sw_show);
end;
procedure TMainForm.savetofile;
var
slist:TStringlist;
begin
slist:=Tstringlist.Create;
try
slist.Add(edit1.Text);
slist.Add(edit2.Text);
slist.Add(inttostr(cb1.ItemIndex));
slist.Add(inttostr(cb2.ItemIndex));
slist.SaveToFile(apppath+'lbd.ini');
finally
slist.Free;
end;
showmessage('保存成功!');
end;
procedure TMainForm.loadfromfile;
var
slist:TStringlist;
begin
slist:=Tstringlist.Create;
try
slist.LoadFromFile(apppath+'lbd.ini');
edit1.Text:=slist.Strings[0];
edit2.Text:=slist.Strings[1];
cb1.ItemIndex:=strtoint(slist.Strings[2]);
cb2.ItemIndex:=strtoint(slist.Strings[3]);
finally
slist.Free;
end;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
apppath:=extractfilepath(application.ExeName);
dm.ADOC.ConnectionString:=format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False',[apppath+'lbd.mdb']);
dm.ADOC.Connected:=true;
nd.cbSize:= sizeof(NotifyIconData);
nd.Wnd:=handle;
nd.uID:=1;
nd.uFlags:= NIF_MESSAGE or NIF_ICON or NIF_TIP;
nd.uCallbackMessage:=WM_TRAYNOTIFY;
nd.hIcon:=application.Icon.Handle;
StrPLCopy(nd.szTip,appname,63);
setwindowlong(application.handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;
procedure TMainForm.FormShow(Sender: TObject);
var
i:integer;
begin
caption:=appname;
for i:=15 to 59 do
cb1.Items.Add(inttostr(i)+'分');
cb1.ItemIndex:=4;
cb2.Items:=cb1.Items;
cb2.ItemIndex:=4;
loadfromfile;
end;
procedure TMainForm.TcFile(fn:string);
var
yy,mm,dd,hh,mi,ms:word;
s:string;
slist:TStringList;
ar1,ar2,ar3,ar4,ar5:Tar;
tt:Tdatetime;
begin
sb.Panels[1].Text:='文件'+fn+'解码';
sb.Repaint;
slist:=Tstringlist.Create;
try
Slist.LoadFromFile(fn);
s:=slist.Strings[0];
StringToArray(s,' ',ar1);
s:=slist.Strings[1];
StringToArray(s,' ',ar2);
s:=slist.Strings[2];
StringToArray(s,' ',ar3);
s:=slist.Strings[3];
StringToArray(s,' ',ar4);
s:=slist.Strings[4];
StringToArray(s,' ',ar5);
//
yy:=strtoint(ar1[1]);
mm:=strtoint(ar1[2]);
dd:=strtoint(ar1[3]);
hh:=strtoint(ar1[4]);
mi:=strtoint(ar1[5]);
ms:=strtoint(ar1[6]);
tt:=encodedatetime(yy,mm,dd,hh,mi,ms,0);
with dm.qu1 do
begin
close;
sql.Text:='select * from tcfile';
open;
if not dm.qu1.Locate('qzh;rq',vararrayof([ar1[0],tt]),[]) then
appendrecord(
[nil,ar1[0],tt,
ar2[0],
ar3[0],ar3[1],ar3[2],
ar4[0],ar4[1],ar4[2],ar4[3],ar4[4],ar4[5],ar4[6],ar4[7],
ar5[0],ar5[1],ar5[2],ar5[3],ar5[4],ar5[5],ar5[6],ar5[7],
ar5[8],ar5[9],ar5[10],ar5[11],ar5[12],ar5[13],ar5[14],ar5[15]
]);
close;
end;
movefileex(pchar(fn),pchar(edit2.Text+'\'+extractfilename(fn)),0);
finally
slist.Free;
end;
sb.Panels[1].Text:='解码完毕';
sb.Panels[3].Text:=datetimetostr(now);
sb.Repaint;
end;
procedure TMainForm.ZtFile(fn:string);
var
i,j,id:integer;
yy,mm,dd,hh,mi,ms:word;
s:string;
slist:TStringList;
ar1,ar2,ar3,ar4:Tar;
ar:array of Tar;
t1,t2,t3:Tdatetime;
begin
sb.Panels[1].Text:='文件'+fn+'解码';
sb.Repaint;
slist:=Tstringlist.Create;
try
Slist.LoadFromFile(fn);
s:=slist.Strings[0];
StringToArray(s,' ',ar1);
s:=slist.Strings[1];
StringToArray(s,' ',ar2);
s:=slist.Strings[2];
StringToArray(s,' ',ar3);
s:=slist.Strings[3];
StringToArray(s,' ',ar4);
//
yy:=strtoint(ar3[0]);
mm:=strtoint(ar3[1]);
dd:=strtoint(ar3[2]);
hh:=strtoint(ar3[3]);
mi:=strtoint(ar3[4]);
ms:=strtoint(ar3[5]);
t1:=encodedatetime(yy,mm,dd,hh,mi,ms,0);
mi:=strtoint(ar3[6]);
ms:=strtoint(ar3[7]);
t2:=encodedatetime(yy,mm,dd,hh,mi,ms,0);
mi:=strtoint(ar3[9]);
ms:=strtoint(ar3[10]);
t3:=encodedatetime(yy,mm,dd,hh,mi,ms,0);
setlength(ar,strtoint(ar4[0]));
for i:=low(ar) to high(ar) do
begin
s:=slist.Strings[4+i];
StringToArray(s,' ',ar[i]);
for j:=low(ar[i]) to high(ar[i]) do
if ar[i][j]='////' then ar[i][j]:='999999';
end;
finally
slist.Free;
end;
dm.ADOC.BeginTrans;
try
dm.qu1.close;
dm.qu1.sql.Text:='select * from ztfile';
dm.qu1.open;
if not dm.qu1.Locate('qzh;rq',vararrayof([ar1[0],t1]),[]) then
begin
dm.qu1.appendrecord(
[nil,ar1[0],ar1[1],ar1[2],
ar2[0],ar2[1],ar2[2],ar2[3],ar2[4],ar2[5],ar2[6],ar2[7],ar2[8],ar2[9],ar2[10],
t1,t2,ar3[8],t3,ar3[11],ar4[0]
]);
id:=dm.qu1.Fields[0].AsInteger;
dm.qu1.close;
dm.qu1.sql.Text:='select * from ztfile1';
dm.qu1.open;
for i:=low(ar) to high(ar) do
dm.qu1.AppendRecord([id,ar[i][0],ar[i][1],ar[i][2],ar[i][3],ar[i][4]]);
dm.qu1.Close;
end
else dm.qu1.close;
except
dm.ADOC.RollbackTrans;
sb.Panels[1].Text:='解码完毕';
sb.Repaint;
exit;
end;
dm.ADOC.CommitTrans;
movefileex(pchar(fn),pchar(edit2.Text+'\'+extractfilename(fn)),0);
sb.Panels[1].Text:='解码完毕';
sb.Panels[3].Text:=datetimetostr(now);
sb.Repaint;
end;
procedure TMainForm.Button3Click(Sender: TObject);
var
sr: TSearchRec;
begin
timer1.Enabled:=false;
if FindFirst(Edit1.Text+'\*.txt',faAnyFile,sr) = 0 then
begin
repeat
if pos('R_WEA_LR',sr.Name)<>0 then tcfile(edit1.Text+'\'+sr.Name);
if pos('R_WEW_LR',sr.Name)<>0 then ztfile(edit1.Text+'\'+sr.Name);
until FindNext(sr) <> 0;
FindClose(sr);
end;
timer1.Enabled:=true;
end;
procedure TMainForm.Button7Click(Sender: TObject);
begin
close;
end;
procedure TMainForm.Button4Click(Sender: TObject);
begin
edit2.Text:=showllform(edit2.Text);
end;
procedure TMainForm.Button5Click(Sender: TObject);
begin
ShellExecute(self.Handle,'explore',pchar(edit2.Text),nil,nil,sw_show);
end;
procedure TMainForm.Button8Click(Sender: TObject);
begin
savetofile;
end;
procedure TMainForm.Timer1Timer(Sender: TObject);
var
yy,mm,dd,hh,mi,ms,mil:word;
begin
decodedatetime(now,yy,mm,dd,hh,mi,ms,mil);
if ((hh=8) and (mi=15+cb1.ItemIndex))or
((hh=19) and (mi=15+cb2.ItemIndex)) then
Button3.Click;
end;
procedure TMainForm.WndProc(var Mymsg: TMessage);
var
pt:TPOINT;
begin
if mymsg.Msg=WM_SYSCOMMAND then
begin
if mymsg.WParam=SC_MINIMIZE then
begin
shell_notifyicon(nim_add,@nd);
showwindow(handle,sw_hide);
end
else inherited;
end
else if Mymsg.Msg = WM_TRAYNOTIFY then
begin
GetCursorPos(pt);
case mymsg.lParam of
WM_RBUTTONDOWN:notimenu.Popup(pt.X,pt.y);
WM_LBUTTONDBLCLK:n1click(n1);
end;
end
else
inherited;
end;
procedure TMainForm.N1Click(Sender: TObject);
begin
shell_notifyicon(NIM_DELETE ,@nd);
showwindow(handle,sw_show);
end;
procedure TMainForm.N2Click(Sender: TObject);
begin
close;
end;
procedure TMainForm.Button9Click(Sender: TObject);
begin
sendmessage(self.Handle,WM_SYSCOMMAND,SC_MINIMIZE,0);
end;
procedure TMainForm.Button6Click(Sender: TObject);
begin
showmodalform(TDataForm,'数据库管理');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -