📄 ugloabvar.pas
字号:
unit uGloabVar;
interface
uses
classes, comctrls, registry,Sysutils,windows,Printers,Dialogs;
Const
UserIDLength = 10;
CodeLength = 10;
GroupIDLength = 2;
var
DBName : string='';
BackName : string='';
ViewOper : boolean = True;
ViewBookMgr : boolean = True;
ViewSettingMgr : boolean = True;
ViewAbout : boolean = True;
ViewBack : boolean = True;
OutDay : integer= 60;
FineDay : Extended = 0.1;
PrintLinesCount : integer= 50;
procedure ReadFromReg;
procedure WriteReg;
procedure GetStr(var Str: TStringList;ListView : TListView;
Title : string;LinesCount : integer);
procedure PrintListView(ListView : TListView;Title:string);
procedure SaveListView(ListView : TListView;Title,PathAndName:string);
implementation
procedure ReadFromReg;
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKey_CURRENT_USER;
if not Reg.KeyExists('SoftWare\图书管理系统') then
begin
Reg.OpenKey('SoftWare\图书管理系统',True);
Reg.WriteBool('ViewOper',True);
Reg.WriteBool('ViewBookMgr',True);
Reg.WriteBool('ViewSetting',True);
Reg.WriteBool('ViewAbout',True);
Reg.WriteBool('ViewBack',True);
Reg.WriteString('DataPath','"'+GetCurrentDir+'\Data'+'"');
Reg.WriteInteger('OutDay',OutDay);
Reg.WriteFloat('FineDay',FineDay);
Reg.WriteInteger('PrintLinesCount',PrintLinesCount);
DBName := GetCurrentDir+'\Data';
Reg.WriteString('BackGroundName','""');
end
else begin
Reg.OpenKey('SoftWare\图书管理系统',False);
try
ViewOper := Reg.ReadBool('ViewOper');
except
Reg.WriteBool('ViewOper',True);
end;
try
ViewBookMgr := Reg.ReadBool('ViewBookMgr');
except
Reg.WriteBool('ViewBookMgr',True);
end;
try
ViewSettingMgr := Reg.ReadBool('ViewSetting');
except
Reg.WriteBool('ViewSetting',True);
end;
try
ViewAbout := Reg.ReadBool('ViewAbout');
except
Reg.WriteBool('ViewAbout',True);
end;
try
ViewBack := Reg.ReadBool('ViewBack');
except
Reg.WriteBool('ViewBack',True);
end;
try
DBName := Reg.ReadString('DataPath');
except
Reg.WriteString('DataPath',GetCurrentDir+'\Data');
DBName := GetCurrentDir+'\Data';
end;
try
BackName := Reg.ReadString('BackGroundName');
except
Reg.WriteString('BackGroundName','');
BackName := '';
end;
try
OutDay := Reg.ReadInteger('OutDay');
except
Reg.WriteInteger('OutDay',OutDay);
end;
try
FineDay := Reg.ReadFloat('FineDay');
except
Reg.WriteFloat('FineDay',FineDay);
end;
try
PrintLinesCount := Reg.ReadInteger('PrintLinesCount');
if PrintLinesCount<5 then
PrintLinesCount := 5;
except
Reg.WriteInteger('PrintLinesCount',PrintLinesCount);
end;
end;
Reg.Free;
end;
procedure WriteReg;
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKey_CURRENT_USER;
Reg.OpenKey('SoftWare\图书管理系统',True);
Reg.WriteBool('ViewOper',ViewOper);
Reg.WriteBool('ViewBookMgr',ViewBookMgr);
Reg.WriteBool('ViewSetting',ViewSettingMgr);
Reg.WriteBool('ViewAbout',ViewAbout);
Reg.WriteBool('ViewBack',ViewBack);
Reg.WriteString('DataPath',DBName);
Reg.WriteString('BackGroundName',BackName);
Reg.WriteInteger('OutDay',OutDay);
Reg.WriteFloat('FineDay',FineDay);
if PrintLinesCount<5 then
PrintLinesCount := 5;
Reg.WriteInteger('PrintLinesCount',PrintLinesCount);
Reg.Free;
end;
procedure GetStr(var Str: TStringList;ListView : TListView;
Title : string;LinesCount : integer);
var
i : integer;
j : integer;
Lines : integer;
PageCount : integer;
begin
PageCount := 1;
Lines := 0;
for i := 0 to ListView.Items.Count-1 do
begin
if Lines= 0 then
begin
Str.Add(Title+' 打印时间: '+DateToStr(Date));
Inc(Lines);
Str.Add('');
Inc(Lines);
end;
Str.Add(ListView.Columns[0].Caption+' : '+ ListView.Items[i].Caption);
Inc(Lines);
if Lines>LinesCount then
begin
Lines := 0;
Str.Add(#12);
end;
for j := 0 to ListView.Columns.Count-2 do
begin
if Lines= 0 then
Str.Add(Title);
Str.Add(ListView.Columns[j+1].Caption+' : '+ ListView.Items[i].SubItems.Strings[j]);
Inc(Lines);
if Lines>LinesCount-2 then
begin
Lines := 0;
Str.Add('');
Str.Add(' --第 '+IntToStr(PageCount)+' 页--');
Str.Add(#12);
end;
if Lines= 0 then
begin
Str.Add(Title+' 打印时间: '+DateToStr(Date));
Inc(Lines);
Str.Add('');
Inc(Lines);
end;
end;
Str.Add('...............................');
if Lines>LinesCount-2 then
begin
Lines := 0;
Str.Add('');
Str.Add(' 第 '+IntToStr(PageCount)+' 页');
Str.Add(#12);
end;
end;
end;
procedure PrintListView(ListView : TListView;Title:string);
var
S : TStringList;
f : TextFile;
i : integer;
begin
S := TStringList.Create;
GetStr(S,ListView,Title,PrintLinesCount);
AssignPrn(f);
try
Rewrite(f);
for i := 0 to S.Count-1 do
Writeln(f,S[i]);
CloseFile(f);
except
MessageDlg('打印失败',mtError,[mbok],0);
CloseFile(f);
end;
S.Free;
end;
procedure SaveListView(ListView : TListView;Title,PathAndName:string);
var
S : TStringList;
begin
S := TStringList.Create;
GetStr(S,ListView,Title,PrintLinesCount);
S.SaveToFile(PathAndName);
S.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -