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

📄 mainunit.pas

📁 三层的通用架构
💻 PAS
📖 第 1 页 / 共 5 页
字号:
var
  i: Cardinal;
begin
  i := First;
  repeat
    Result := BasicStr + IntToStr(i);
    i := i + 1;
  until not FIniFile.SectionExists(Result);
end;

procedure TTheMainForm.DeleteName(const Name: string);
var
  ParentGroup: string;
  i: Integer;
  DeleteStrings: TStringList;
begin
  if FIniFile.SectionExists(Name) then
  begin
    FIniMustSave := True;
    if FIniFile.ReadString(Name, 'Type', '') = '功能组' then
    begin
      DeleteStrings := TStringList.Create;
      for i := 0 to FAllList.Count - 1 do
      begin
        ParentGroup := FAllList[i];
        repeat
          ParentGroup := FIniFile.ReadString(ParentGroup, 'Parent', '');
        until (ParentGroup = Name) or (ParentGroup = '') or (ParentGroup = '回收站');
        if ParentGroup = Name then
          DeleteStrings.Add(FAllList[i]);
      end;
      for i := 0 to DeleteStrings.Count - 1 do
          FIniFile.EraseSection(DeleteStrings[i]);
      DeleteStrings.Free;
    end;
    FIniFile.EraseSection(Name);
  end;
  if (Name <> '') and (Name <> '回收站') then
  begin
    i := SelectGroup(Name, False);
    if i > 0 then
      if FTreeViewNode = TreeView1.Items[i] then
      begin
        TreeView1.Items[i].Delete;
        FTreeViewNode := TreeView1.Selected;
      end
      else
        TreeView1.Items[i].Delete;
    i := SelectName(Name);
    if i > -1 then
    begin
      ListView1.Items[i].Delete;
      if ListView1.Items.Count = 0 then
        ListView1.TabStop := False;
    end;
    SetDeleteIcon;
    if FSortNameFlag then
      SortName.Execute
    else
      SortIndex.Execute;
  end;
end;

function TTheMainForm.ProcessIniFile(ResumeFlag: Boolean = True; SaveFlag: Boolean = True; Source: string = ''; Target: string = ''): Boolean;
var
  FSource, FTarget: File;
  Flag: Boolean;
  Count, Size, i: Integer;
  Buf: array [0..96] of Char;
  Str: string;
begin
  Result := False;
  Flag := False;
  if (Target = '') or (Target = ' ') then
  begin
    if Target = '' then
      Flag := True;
    if ResumeFlag then
    begin
      SetLength(Target, MAX_PATH + 1);
      GetSystemDirectory(@Target[1], MAX_PATH);
      SetLength(Target, Length(PChar(Target)));
      if Copy(Target, length(Target), 1) <> '\' then
        Target := Target + '\';
      if Flag then
        Target := Target + Copy(Application.ExeName, Length(ExtractFilePath(Application.ExeName)) + 1, Length(Application.ExeName) - Length(ExtractFilePath(Application.ExeName)) - Length(ExtractFileExt(Application.ExeName))) + '.TMP'
      else
        Target := Target + Copy(Application.ExeName, Length(ExtractFilePath(Application.ExeName)) + 1, Length(Application.ExeName) - Length(ExtractFilePath(Application.ExeName)) - Length(ExtractFileExt(Application.ExeName))) + 'U.TMP';
    end
    else
      if Flag then
        Target := FIniFileName
      else
        Target := FUserFileName;
  end;
  if ResumeFlag then
  begin
    Str := Copy(Target, 1, Length(Target) - Length(ExtractFileExt(Target)));
    i := 0;
    while FileExists(Target) and not DeleteFile(Target) do
    begin
      i := i + 1;
      Target := Str + IntToStr(i) + '.TMP';
    end;
    if Flag then
      FIniFileName := Target
    else
      FUserFileName := Target;
  end;
  if Source = '' then
    if Flag then
      Source := Copy(Application.ExeName, 1, Length(Application.ExeName) - Length(ExtractFileExt(Application.ExeName))) + '.ini'
    else
      Source := Copy(Application.ExeName, 1, Length(Application.ExeName) - Length(ExtractFileExt(Application.ExeName))) + '.usr';
  if Source = Target then
    Exit;
  FileMode := 0;
  AssignFile(FSource, Source);
  AssignFile(FTarget, Target);
  if ResumeFlag then
  begin
    if FileExists(Source) then
    begin
      try
        Reset(FSource, 1);
        ReWrite(FTarget, 1);
        try
          Count := 0;
          repeat
            Count := Count + 1;
            BlockRead(FSource, Buf, 96, Size);
            if Size > 0 then
            begin
              SetLength(Str, Size);
              for i := 1 to Size do
                Str[i] := Buf[i - 1];
              Str := ProcessPassword(IntToStr(Count), Str, True);
              Size := Length(Str);
              for i := 1 to Size do
                Buf[i - 1] := Str[i];
              if Size > 0 then
                BlockWrite(FTarget, Buf, Size);
            end;
          until Size = 0;
          Result := True;
        except
        end;
      except
      end;
      CloseFile(FSource);
      CloseFile(FTarget);
    end;
  end
  else
    if FileExists(Target) then
    begin
      if SaveFlag then
      begin
        try
          Reset(FTarget, 1);
          ReWrite(FSource, 1);
          try
            Count := 0;
            repeat
              Count := Count + 1;
              BlockRead(FTarget, Buf, 16, Size);
              if Size > 0 then
              begin
                SetLength(Str, Size);
                for i := 1 to Size do
                  Str[i] := Buf[i - 1];
                Str := ProcessPassword(IntToStr(Count), Str);
                Size := Length(Str);
                for i := 1 to Size do
                  Buf[i - 1] := Str[i];
                if Size > 0 then
                  BlockWrite(FSource, Buf, Size);
              end;
            until Size = 0;
            Result := True;
          except
          end;
        except
        end;
        CloseFile(FSource);
        CloseFile(FTarget);
      end
      else
        Result := True;
      DeleteFile(Target);
    end;
  FileMode := 2;
end;

procedure TTheMainForm.CshUserFile;
begin
  if (FAllList.Count = 0) and ((UpperCase(FUserFile.ReadString('ADMINISTRATORS', 'Type', '')) <> 'USERGROUP') or (UpperCase(FUserFile.ReadString('ADMINISTRATOR', 'Type', '')) <> 'USER') or (UpperCase(FUserFile.ReadString('GUESTS', 'Type', '')) <> 'USERGROUP') or (UpperCase(FUserFile.ReadString('GUEST', 'Type', '')) <> 'USER')) then
  begin
    FIniMustSave := True;
    FUserFile.WriteString('Default', 'AutoShowUser', '1');
    FUserFile.WriteString('Default', 'UserName', 'Admin');
    FUserFile.WriteString('AliasName', 'ADMIN', 'ADMINISTRATOR');
    FUserFile.WriteString('AliasName', 'EVERYONE', 'GUEST');
    FUserFile.WriteString('ADMINISTRATORS', 'Type', 'UserGroup');
    FUserFile.WriteString('ADMINISTRATORS', 'UserGroup', 'ADMINISTRATORS');
    FUserFile.WriteString('ADMINISTRATORS', 'NotUse', '');
    FUserFile.WriteString('ADMINISTRATORS', 'AliasName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'Password', ProcessPassword('ADMINISTRATORS', ''));
    FUserFile.WriteString('ADMINISTRATORS', 'Hint', '超级用户组');
    FUserFile.WriteString('ADMINISTRATORS', 'LoginTimes', '0');
    FUserFile.WriteString('ADMINISTRATORS', 'AllowLoginTimes', '0');
    FUserFile.WriteString('ADMINISTRATORS', 'AviShow', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'AviFile', '');
    FUserFile.WriteString('ADMINISTRATORS', 'Idle', '0');
    FUserFile.WriteString('ADMINISTRATORS', 'LoginFailExit', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'HintOnClose', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'NotNew', '');
    FUserFile.WriteString('ADMINISTRATORS', 'NotMove', '');
    FUserFile.WriteString('ADMINISTRATORS', 'NotModify', '');
    FUserFile.WriteString('ADMINISTRATORS', 'NotDelete', '');
    FUserFile.WriteString('ADMINISTRATORS', 'AllNotOpen', '');
    FUserFile.WriteString('ADMINISTRATORS', 'NotOpen', '');
    FUserFile.WriteString('ADMINISTRATORS', 'Expand', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'DefaultItem', '');
    FUserFile.WriteString('ADMINISTRATORS', 'NotDBPara', '');
    FUserFile.WriteString('ADMINISTRATORS', 'NotConnect', '');
    FUserFile.WriteString('ADMINISTRATORS', 'NotSysPara', '');
    FUserFile.WriteString('ADMINISTRATORS', 'NotUser', '');
    FUserFile.WriteString('ADMINISTRATORS', 'NotChangePassword', '');
    FUserFile.WriteString('ADMINISTRATORS', 'DBConnectTypeView', '');
    FUserFile.WriteString('ADMINISTRATORS', 'DBAutoConnect', '');
    FUserFile.WriteString('ADMINISTRATORS', 'DBConnectHint', '%登录用户名%');
    FUserFile.WriteString('ADMINISTRATORS', 'DBConnectType', 'ADO');
    FUserFile.WriteString('ADMINISTRATORS', 'BDEAliasName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'BDEDatabaseName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'BDEUserName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'BDEPassword', ProcessPassword('',''));
    FUserFile.WriteString('ADMINISTRATORS', 'ADOConnectionString', '');
    FUserFile.WriteString('ADMINISTRATORS', 'ADOUserName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'ADOPassword', ProcessPassword('', ''));
    FUserFile.WriteString('ADMINISTRATORS', 'MIDASType', 'DCOM');
    FUserFile.WriteString('ADMINISTRATORS', 'DCOMComputerName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'DCOMServerGUID', '');
    FUserFile.WriteString('ADMINISTRATORS', 'DCOMServerName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'SOCKETAddress', '');
    FUserFile.WriteString('ADMINISTRATORS', 'SOCKETHost', '');
    FUserFile.WriteString('ADMINISTRATORS', 'SOCKETPort', '211');
    FUserFile.WriteString('ADMINISTRATORS', 'SOCKETInterceptGUID', '');
    FUserFile.WriteString('ADMINISTRATORS', 'SOCKETInterceptName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'SOCKETServerGUID', '');
    FUserFile.WriteString('ADMINISTRATORS', 'SOCKETServerName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'WEBURL', 'http://server/Scripts/httpsrvr.dll');
    FUserFile.WriteString('ADMINISTRATORS', 'WEBServerGUID', '');
    FUserFile.WriteString('ADMINISTRATORS', 'WEBServerName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'WEBProxy', '');
    FUserFile.WriteString('ADMINISTRATORS', 'WEBUserName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'WEBPassword', ProcessPassword('', ''));
    FUserFile.WriteString('ADMINISTRATORS', 'WEBProxyByPass', '');
    FUserFile.WriteString('ADMINISTRATORS', 'WEBAgent', '');
    FUserFile.WriteString('ADMINISTRATORS', 'SOAPURL', '');
    FUserFile.WriteString('ADMINISTRATORS', 'SOAPAgent', '');
    FUserFile.WriteString('ADMINISTRATORS', 'SOAPProxy', '');
    FUserFile.WriteString('ADMINISTRATORS', 'SOAPUserName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'SOAPPassword', ProcessPassword('', ''));
    FUserFile.WriteString('ADMINISTRATORS', 'SOAPProxyByPass', '');
    FUserFile.WriteString('ADMINISTRATORS', 'CORBAHostName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'CORBAObjectName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'CORBARepositoryId', '');
    FUserFile.WriteString('ADMINISTRATORS', 'CORBACancelable', '');
    FUserFile.WriteString('ADMINISTRATORS', 'PBSQLCADBMS', '');
    FUserFile.WriteString('ADMINISTRATORS', 'PBSQLCADatabase', '');
    FUserFile.WriteString('ADMINISTRATORS', 'PBSQLCAUserID', '');
    FUserFile.WriteString('ADMINISTRATORS', 'PBSQLCADBPass', ProcessPassword('', ''));
    FUserFile.WriteString('ADMINISTRATORS', 'PBSQLCALock', '');
    FUserFile.WriteString('ADMINISTRATORS', 'PBSQLCALogID', '');
    FUserFile.WriteString('ADMINISTRATORS', 'PBSQLCALogPass', ProcessPassword('', ''));
    FUserFile.WriteString('ADMINISTRATORS', 'PBSQLCAServerName', '');
    FUserFile.WriteString('ADMINISTRATORS', 'PBSQLCADBParm', '');
    FUserFile.WriteString('ADMINISTRATORS', 'WindowState', '');
    FUserFile.WriteString('ADMINISTRATORS', 'FormLeft', '54');
    FUserFile.WriteString('ADMINISTRATORS', 'FormTop', '49');
    FUserFile.WriteString('ADMINISTRATORS', 'FormWidth', '692');
    FUserFile.WriteString('ADMINISTRATORS', 'FormHeight', '480');
    FUserFile.WriteString('ADMINISTRATORS', 'Panel1Width', '201');
    FUserFile.WriteString('ADMINISTRATORS', 'Panel8Height', '31');
    FUserFile.WriteString('ADMINISTRATORS', 'Panel9Width', '194');
    FUserFile.WriteString('ADMINISTRATORS', 'Animate1Width', '60');
    FUserFile.WriteString('ADMINISTRATORS', 'PageScroller2Index', '0');
    FUserFile.WriteString('ADMINISTRATORS', 'PageScroller2Left', '9');
    FUserFile.WriteString('ADMINISTRATORS', 'PageScroller2Width', '667');
    FUserFile.WriteString('ADMINISTRATORS', 'PageScroller2Break', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'PageScroller1Index', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'PageScroller1Left', '9');
    FUserFile.WriteString('ADMINISTRATORS', 'PageScroller1Width', '667');
    FUserFile.WriteString('ADMINISTRATORS', 'PageScroller1Break', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'Panel4Index', '2');
    FUserFile.WriteString('ADMINISTRATORS', 'Panel4Left', '9');
    FUserFile.WriteString('ADMINISTRATORS', 'Panel4Width', '667');
    FUserFile.WriteString('ADMINISTRATORS', 'Panel4Break', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'PageScroller2Position', '0');
    FUserFile.WriteString('ADMINISTRATORS', 'PageScroller1Position', '0');
    FUserFile.WriteString('ADMINISTRATORS', 'ViewSort', '');
    FUserFile.WriteString('ADMINISTRATORS', 'ViewCustomize', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'ViewToolBar', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'ViewGoto', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'ViewStatusBar', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'ViewSupports', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'ViewGroup', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'ViewIcon', '1');
    FUserFile.WriteString('ADMINISTRATORS', 'ColumnWidths', '236,40,50,150,60,150,60,100,150,150,150');
    FUserFile.WriteString('ADMINISTRATOR', 'Type', 'User');
    FUserFile.WriteString('ADMINISTRATOR', 'UserGroup', 'ADMINISTRATORS');
    FUserFile.WriteString('ADMINISTRATOR', 'NotUse', '');
    FUserFile.WriteString('ADMINISTRATOR', 'AliasName', 'Admin');
    FUserFile.WriteString('ADMINISTRATOR', 'Password', ProcessPassword('ADMINISTRATOR', ''));
    FUserFile.WriteString('ADMINISTRATOR', 'Hint', '超级用户');
    FUserFile.WriteString('ADMINISTRATOR', 'LoginTimes', '0');
    FUserFile.WriteString('ADMINISTRATOR', 'AllowLoginTimes', '0');
    FUserFile.WriteString('ADMINISTRATOR', 'AviShow', '1');
    FUserFile.WriteString('ADMINISTRATOR', 'AviFile', '');
    FUserFile.WriteString('ADMINISTRATOR', 'Idle', '0');
    FUserFile.WriteString('ADMINISTRATOR', 'LoginFailExit', '1');
    FUserFile.WriteString('ADMINISTRATOR', 'HintOnClose', '1');
    FUserFile.WriteString('ADMINISTRATOR', 'NotNew', '');
    FUserFile.WriteString('ADMINISTRATOR', 'NotMove', '');
    FUserFile.WriteString('ADMINISTRATOR', 'NotModify', '');
    FUserFile.WriteString('ADMINISTRATOR', 'NotDelete', '');
    FUserFile.WriteString('ADMINISTRATOR', 'AllNotOpen', '');
    FUserFile.WriteString('ADMINISTRATOR', 'NotOpen', '');
    FUserFile.WriteString('ADMINISTRATOR', 'Expand', '1');
    FUserFile.WriteString('ADMINISTRATOR', 'DefaultItem', '');
    FUserFile.WriteString('ADMINISTRATOR', 'NotDBPara', '');
    FUserFile.WriteString('ADMINISTRATOR', 'NotConnect', '');
    FUserFile.WriteString('ADMINISTRATOR', 'NotSysPara', '');
    FUserFile.WriteString('ADMINISTRATOR', 'NotUser', '');
    FUserFile.WriteString('ADMINISTRATOR', 'NotChangePassword', '');
    FUserFile.WriteString('ADMINISTRATOR', 'DBConnectTypeView', '');
    FUserFile.WriteString('ADMINISTRATOR', 'DBAutoConnect', '');
    FUserFile.WriteString('ADMINISTRATOR', 'DBConnectHint', '%登录用户名%');
    FUserFile.WriteString('ADMINISTRATOR', 'DBConnectType', 'ADO');
    FUserFile.WriteString('ADMINISTRATOR', 'BDEAliasName', '');
    FUserFile.WriteString('ADMINISTRATOR', 'BDEDatabaseName', '');
    FUserFile.WriteString('ADMINISTRATOR', 'BDEUserName', '');
    FUserFile.WriteString('ADMINISTRATOR', 'BDEPassword', ProcessPassword('',''));
    FUserFile.WriteString('ADMINISTRATOR', 'ADOConnectionString', '');
    FUserFile.WriteString('ADMINISTRATOR', 'ADOUserName', '');
    FUserFile.WriteString('ADMINISTRATOR', 'ADOPassword', ProcessPassword('', ''));
    FUserFile.WriteString('ADMINISTRATOR', 'MIDASType', 'DCOM');
    FUserFile.WriteString('ADMINISTRATOR', 'DCOMComputerName', '');
    FUse

⌨️ 快捷键说明

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