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

📄 proset.pas

📁 是一款很不错资料数据库管理软件
💻 PAS
字号:
//--------------------------------
//共用过程单元集
//--------------------------------
unit proset;


interface
uses
 SysUtils,Forms,shlobj,qureyf;

procedure finddir;//搜索文件夹
procedure readinif;//读INI文件
procedure saveinif;//保存/更新INI文件
Function delext(Fn:string):string; //获取没有扩展名的文件名
function BrowseFolder:string;//打开文件夹选择窗口
function evpos(c:char;s:string):integer;
function GetFieldName(pathstr:string):string;//从路径中提取文件夹名

implementation
uses mainform;

procedure finddir;//搜索文件夹
//var
  //Srec:TSearchRec;
  //Retuv:integer;
begin
{Retuv:=findfirst(workpath+'*.*',FaDirectory,Srec);
while Retuv=0 do
  begin
  If (SRec.Attr and faDirectory)<>0 Then //是目录
  if (Srec.Name<>'.') and (Srec.Name<>'..') then
  with mainwin.listview1.Items.Add do
    begin
    caption:= Srec.Name;
    SubItems.add(datetimetostr(Srec.Time));
    imageindex :=5;
    end;
  retuv:=findnext(srec);
  end;}
end;

//----------------打开文件夹选择窗口
function BrowseFolder:string;
var
  Info:TBrowseInfo;
  Dir:array[0..260] of char;
  ItemId:PItemIDList;
begin
  with Info do
  begin
    hwndOwner:=application.Handle;
    pidlRoot:=nil;
    pszDisplayName:=nil;
    lpszTitle:='请选择一个文件夹:';
    ulFlags:=0;
    lpfn:=nil;
    lParam:=0;
    iImage:=0;
  end;
  ItemId:=SHBrowseForFolder(Info);
  if ItemId<>nil then
  begin
  SHGetPathFromIDList(ItemId,@Dir);
  Result:=string(Dir);
  end;
end;


//----------------从路径中提取文件夹名
function GetFieldName(pathstr:string):string;
var ns:byte;
begin
if (pathstr='A:\') or (pathstr='B:\') or (pathstr='C:\') or
   (pathstr='D:\') or (pathstr='E:\') or (pathstr='F:\') or
   (pathstr='G:\') or (pathstr='H:\') or (pathstr='I:\') or
   (pathstr='J:\') or (pathstr='K:\') or (pathstr='L:\')
   then result:='drive_'+pathstr[1]
else
   begin
   ns:=evpos('\',pathstr);
   result:=copy(pathstr,ns+1,length(pathstr)-ns);
   end;
end;

{在字符中查找指定字符最后一次出现的位置,
  如果找到,返回实际位置,没有找到返回0}
function evpos(c:char;s:string):integer;
var sl,n:integer;
begin
if s='' then result:=0;
sl:=length(s);
for n:=sl downto 1 do if s[n]=c then break;
if n<=1 then result:=0 else result:=n;
end;

//-------------移除文件扩展名
Function delext(Fn:string):string;
var va:integer;
begin
va:=evpos('.',Fn);
if va=0 then result:=fn;
delete(fn,va,255);
result:=fn;
end;

procedure readinif;//读INI文件
begin
//-----读窗口位置
mainwin.top:=inifn.readInteger('mformsize','mformtop',mainwin.top);
mainwin.left:=inifn.readInteger('mformsize','mformleft',mainwin.left);
mainwin.height:=inifn.readInteger('mformsize','mformheight',mainwin.height);
mainwin.width:=inifn.readInteger('mformsize','mformwidth',mainwin.width);
Winsta:=inifn.ReadInteger('mformsize','mformstart',0);
//-------读各控件状态
mainwin.panel1.width:=inifn.readInteger('control','treeboxwidth',150);

mainwin.Toolbar1.ShowHint:=inifn.readBool('control','toolbarhint',true);
mainwin.RichEdit1.WordWrap:=inifn.ReadBool('control','editautowrap',mainwin.RichEdit1.WordWrap);
mainwin.Toolbar1.visible:=inifn.ReadBool('control','toolbarvisible',true);
mainwin.statusbar1.visible:=inifn.readBool('control','statusvisible',true);
//-----------TREEVIEW属性
mainwin.treeview1.color:=inifn.readinteger('control','treebcolor',mainwin.treeview1.color);
mainwin.treeview1.font.Size:=inifn.Readinteger('control','treebfontsize',mainwin.treeview1.font.Size);
mainwin.treeview1.font.name:=inifn.Readstring('control','treebfontname',mainwin.treeview1.font.name);
mainwin.treeview1.font.color:=inifn.ReadInteger('control','treebfontcolor',mainwin.treeview1.font.color);
mainwin.richedit1.color:=inifn.readinteger('control','richbcolor',mainwin.richedit1.color);
//-------------编辑框字体属性
mainwin.richedit1.font.color:=inifn.readinteger('editfont','fnotcolor',mainwin.richedit1.font.color);
mainwin.richedit1.font.size:=inifn.readinteger('editfont','fnotsize',mainwin.richedit1.font.size);
mainwin.richedit1.font.name:=inifn.readstring('editfont','fnotname',mainwin.richedit1.font.name);
//---------系统属性
mainwin.Timer2.Enabled:=inifn.ReadBool('Sysoption','autosave',true);
mainwin.Timer2.Interval:=inifn.Readinteger('Sysoption','autosavetime',300000);
exteditpro:=inifn.Readstring('Sysoption','exteditfile','Notepad.exe');
end;

procedure saveinif;//保存\更新INI文件
var wst:byte;
begin
wst:=0;
if mainwin.WindowState=wsMaximized then wst:=1;
//-----窗口位置
if mainwin.WindowState=wsNormal then //如果窗口不是最大化的
begin
inifn.WriteInteger('mformsize','mformtop',mainwin.top); //保存主窗口顶部位置
inifn.WriteInteger('mformsize','mformleft',mainwin.left); //保存主窗口左部位置
inifn.WriteInteger('mformsize','mformheight',mainwin.height); //保存主窗口高度
inifn.WriteInteger('mformsize','mformwidth',mainwin.width);//保存主窗口宽度
end;
inifn.WriteInteger('mformsize','mformstart',wst); //保存主窗口启动状态
//-------各控件状态
if mainwin.panel1.width >0 then  //如果标题窗口可见
inifn.WriteInteger('control','treeboxwidth',mainwin.panel1.width)
else inifn.WriteInteger('control','treeboxwidth',80);
inifn.WriteBool('control','toolbarhint',mainwin.Toolbar1.ShowHint); //保存工具栏提示状态
inifn.WriteBool('control','editautowrap',mainwin.RichEdit1.WordWrap);//保存是否自动换行
inifn.WriteBool('control','toolbarvisible',mainwin.Toolbar1.visible); //保存工具栏是否可见
inifn.WriteBool('control','statusvisible',mainwin.statusbar1.visible); //保存状态栏是否可见
//-----------TREEVIEW属性
inifn.Writeinteger('control','treebcolor',mainwin.treeview1.color); //标题窗背影色
inifn.Writeinteger('control','treebfontsize',mainwin.treeview1.font.Size); //标题窗字体大小
inifn.Writestring('control','treebfontname',mainwin.treeview1.font.name);  //保存标题窗字体名
inifn.Writeinteger('control','treebfontcolor',mainwin.treeview1.font.color); //保存标题窗了体颜色
inifn.Writeinteger('control','richbcolor',mainwin.richedit1.color); //保存编辑窗背影色
//-------------编辑框字体属性
inifn.Writeinteger('editfont','fnotcolor',mainwin.richedit1.font.color); //编辑窗字体色
inifn.Writeinteger('editfont','fnotsize',mainwin.richedit1.font.size);//编辑窗字体大小
inifn.Writestring('editfont','fnotname',mainwin.richedit1.font.name); //编辑窗字体名
//---------系统属性
inifn.WriteBool('Sysoption','autosave',mainwin.Timer2.Enabled);//保存是否自动保存
inifn.Writeinteger('Sysoption','autosavetime',mainwin.Timer2.Interval);//自动存时间
inifn.Writestring('Sysoption','exteditfile',exteditpro);  //外部编辑器名称
//----------------------
inifn.free;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -