📄 taskunt.pas
字号:
unit taskunt;
interface
uses
Windows, SysUtils,Classes,structureunt;
type
Ttask=class
constructor Create;
destructor Destroy;override;
private
tasklist:array of Ttaskinfo;
function gettasktoid(s:String):integer;
procedure savetofile;
public
function getcount:integer;
procedure loadfromfile;
function gettaskinfoex(s:string):Ttaskinfo; overload;
function gettaskinfoex(n:integer):Ttaskinfo; overload;
procedure modifytask(s:string;p:Ttaskinfo); overload;
procedure modifytask(n:integer;p:Ttaskinfo); overload;
procedure addtask(dt:tdatetime;firendid,params:string;bool:boolean);
procedure deltask(md5code:string);
procedure cleartask;
end;
implementation
uses shareunit;
function Ttask.getcount:integer;
begin
result:=high(tasklist)+1;
end;
function Ttask.gettasktoid(s:String):integer;
var i:integer;
begin
result:=0;
if getcount>0 then
for i:=low(tasklist) to high(tasklist) do
if not tasklist[i].nullity then
if tasklist[i].md5code=s then
begin
result:=i+1;
break;
end;
end;
function Ttask.gettaskinfoex(s:string):Ttaskinfo;
var p:integer;
begin
result:=tasklist[0];
p:=gettasktoid(s);
if p>0 then result:=tasklist[p-1];
end;
function Ttask.gettaskinfoex(n:integer):Ttaskinfo;
begin
result:=tasklist[n-1];
end;
procedure Ttask.modifytask(n:integer;p:Ttaskinfo);
begin
tasklist[n-1]:=p;
end;
procedure Ttask.modifytask(s:string;p:Ttaskinfo);
var n:integer;
begin
n:=gettasktoid(s);
if n>0 then modifytask(n,p);
end;
procedure Ttask.addtask(dt:tdatetime;firendid,params:string;bool:boolean);
var p:integer;
tmptask:Ttaskinfo;
begin
tmptask.msgtime:=dt;
tmptask.firendid:=firendid;
tmptask.tasktype:=bool;
tmptask.nullity:=false;
StrPCopy(tmptask.msgtext,params);
tmptask.md5code:=md5encode(firendid+params);
if gettasktoid(tmptask.md5code)=0 then
begin
p:=high(tasklist)+1;
setlength(tasklist,p+1);
tasklist[p]:=tmptask;
end;
end;
procedure Ttask.deltask(md5code:string);
var tmptask:Ttaskinfo;
begin
tmptask:=gettaskinfoex(md5code);
tmptask.nullity:=true;
modifytask(md5code,tmptask);
end;
procedure Ttask.cleartask;
var i:integer;
begin
if getcount>0 then
for i:=1 to getcount do
tasklist[i-1].nullity:=true;
end;
//------------------------------------------------------------------------------
// 从文件装入
//------------------------------------------------------------------------------
procedure Ttask.loadfromfile;
var filenames:string;
files:file of Ttaskinfo;
tmptask:Ttaskinfo;
p:integer;
begin
filenames:=extractfilepath(application_name)+loginuser+'.tsk';
if fileexists(filenames) then
try
assignfile(Files,filenames);
reset(files);
while not Eof(files) do
begin
read(files,tmptask);
if gettasktoid(tmptask.md5code)=0 then
begin
p:=high(tasklist)+1;
setlength(tasklist,p+1);
tasklist[p]:=tmptask;
end;
end;
finally
closefile(files);
end;
end;
//------------------------------------------------------------------------------
// 保存列表
//------------------------------------------------------------------------------
procedure Ttask.savetofile;
var filenames:string;
files:file of Ttaskinfo;
i:integer;
begin
if getcount>0 then
try
filenames:=extractfilepath(application_name)+loginuser+'.tsk';
assignfile(Files,filenames);
rewrite(files);
for i:=1 to getcount do
if not tasklist[i-1].nullity then
write(files,tasklist[i-1]);
finally
closefile(files);
end;
end;
//------------------------------------------------------------------------------
// 创建
//------------------------------------------------------------------------------
constructor Ttask.Create;
begin
end;
//------------------------------------------------------------------------------
// 释放
//------------------------------------------------------------------------------
destructor Ttask.Destroy;
begin
savetofile;
tasklist:=nil;
inherited Destroy;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -