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

📄 userunit.pas

📁 三层的通用架构
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  end;
end;

procedure TUserForm.Button5Click(Sender: TObject);
begin
  with OpenDialog1 do
  begin
    InitialDir := ExtractFilePath(Edit5.Text);
    FileName := ExtractFileName(Edit5.text);
    FilterIndex := 2;
    if (FileName = '') or (UpperCase(ExtractFileExt(FileName)) = '.AVI') then
      FilterIndex := 1;
    if Execute then
      Edit5.Text := FileName;
  end;
end;

procedure TUserForm.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
  if not ((Key >= '0') and (Key <= '9') or (Key = #8)) then
    Key := #7;
end;

procedure TUserForm.NewUserGroupExecute(Sender: TObject);
begin
  with TSetStringForm.Create(Application) do
  begin
    CaptionString := '输入';
    LabelString := '新建用户组名(&G):';
    ShowModal;
    EditString := UpperCase(Trim(EditString));
    if OkFlag and (EditString <> '') and (TheMainForm.AddUserGroup(EditString)) then
    begin
      with UserGroupList.Items.AddChild(nil, EditString) do
      begin
        ImageIndex := 0;
        SelectedIndex := 1;
        StateIndex := -1;
        Selected := True;
      end;
      UserGroupList.SetFocus;
    end;
    Free;
  end;
end;

procedure TUserForm.NewUserGroupUpdate(Sender: TObject);
begin
  TAction(Sender).Enabled := True;
end;

procedure TUserForm.NewUserExecute(Sender: TObject);
var
  NotUseFlag: Boolean;
begin
  SaveCurrent;
  with TSetStringForm.Create(Application) do
  begin
    CaptionString := '输入';
    LabelString := '新建用户名(&U):';
    ShowModal;
    EditString := UpperCase(Trim(EditString));
    NotUseFlag := False;
    if OkFlag and (EditString <> '') and (UserGroupList.Selected <> nil) and (TheMainForm.AddUser(EditString, UserGroupList.Selected.Text, NotUseFlag)) then
    begin
      with UserList.Items.AddChild(nil, EditString) do
      begin
        if NotUseFlag then
          ImageIndex := 4
        else
          ImageIndex := 2;
        SelectedIndex := 3;
        StateIndex := -1;
        Selected := True;
      end;
      UserList.SetFocus;
    end;
    Free;
  end;
end;

procedure TUserForm.NewUserUpdate(Sender: TObject);
begin
  TAction(Sender).Enabled := UserGroupList.Selected <> nil;
end;

procedure TUserForm.ExitUserManagerExecute(Sender: TObject);
begin
  Close;
end;

procedure TUserForm.DeleteUserGroupExecute(Sender: TObject);
begin
  if FGroupNode = nil then
    FGroupNode := UserGroupList.Selected;
  if (FGroupNode <> nil) and (Pos(FGroupNode.Text + ',', 'ADMINISTRATORS,GUESTS,') = 0) then
    if TheMainForm.DeleteUserGroup(FGroupNode.Text) then
    begin
      UserGroupList.SetFocus;
      FGroupNode.Delete;
    end;
  FGroupNode := nil;
end;

procedure TUserForm.DeleteUserGroupUpdate(Sender: TObject);
begin
  if FGroupNode = nil then
    FGroupNode := UserGroupList.Selected;
  TAction(Sender).Enabled := (FGroupNode <> nil) and (Pos(FGroupNode.Text + ',', 'ADMINISTRATORS,GUESTS,') = 0);
  if TAction(Sender).Enabled then
    TAction(Sender).Caption := '删除用户组 ' + FGroupNode.Text + ' (&D)'
  else
    TAction(Sender).Caption := '删除用户组(&D)';
end;

procedure TUserForm.DeleteUserExecute(Sender: TObject);
begin
  if FUserNode = nil then
    FUserNode := UserList.Selected;
  if (FUserNode <> nil) and (Pos(FUserNode.Text + ',', 'ADMINISTRATOR,GUEST,') = 0) then
    if TheMainForm.DeleteUser(FUserNode.Text) then
    begin
      FUserNode.Delete;
      if UserList.Items.Count = 0 then
        UserGroupList.SetFocus;
    end;
  FGroupNode := nil;
  FUserNode := nil;
end;

procedure TUserForm.DeleteUserUpdate(Sender: TObject);
begin
  if FUserNode = nil then
    FUserNode := UserList.Selected;
  TAction(Sender).Enabled := (FUserNode <> nil) and (Pos(FUserNode.Text + ',', 'ADMINISTRATOR,GUEST,') = 0);
  if TAction(Sender).Enabled then
  begin
      MoveUserTo.Caption := '移动用户 ' + FUserNode.Text + ' 到(&M)...';
      DeleteUser.Caption := '删除用户 ' + FUserNode.Text + ' (&T)';
  end
  else begin
    MoveUserTo.Caption := '移动用户到(&M)...';
    DeleteUser.Caption := '删除用户(&T)';
  end;
end;

procedure TUserForm.MoveUserToExecute(Sender: TObject);
var
  i: Integer;
  NotUseFlag: Boolean;
begin
  if FGroupNode = nil then
    FGroupNode := UserGroupList.Selected;
  if FUserNode = nil then
    FUserNode := UserList.Selected;
  if (FGroupNode <> nil) and (FUserNode <> nil) then
    with TSetStringForm.Create(Application) do
    begin
      CaptionString := '重置用户 ' + FUserNode.Text;
      LabelString := '从用户组 ' + UserGroupList.Selected.Text + ' 移至(&M):';
      EditString := FGroupNode.Text;
      for i := 0 to UserGroupList.Items.Count - 1 do
        ComboBoxStrings.Add(UserGroupList.Items[i].Text);
      ShowModal;
      EditString := UpperCase(Trim(EditString));
      NotUseFlag := False;
      if OkFlag and (EditString <> '') and TheMainForm.MoveUserToGroup(FUserNode.Text, EditString, NotUseFlag) then
      begin
        FSave := FUserNode.Text;
        UserGroupList.ClearSelection;
        FGroupNode.Selected := True;
        UserGroupList.SetFocus;
      end;
      Free;
    end;
  FGroupNode := nil;
  FUserNode := nil;
end;

procedure TUserForm.SetOpenExecute(Sender: TObject);
begin
  if FName = '' then Exit;
  if UserItemForm <> nil then
    UserItemForm.Free;
  UserItemForm := TUserItemForm.Create(Application);
  with UserItemForm do
  begin
    TheUserName := FName;
    TheMainForm.InitUserItem(FName);
    Caption := FName + ' ' + Caption;
    ShowModal;
  end;
end;

procedure TUserForm.SetOpenUpdate(Sender: TObject);
begin
  TAction(Sender).Enabled := CheckBox10.Checked;
end;

procedure TUserForm.SetDBExecute(Sender: TObject);
begin
  if FName = '' then Exit;
  if DBParaForm <> nil then
    DBParaForm.Free;
  DBParaForm := TDBParaForm.Create(Application);
  with DBParaForm do
  begin
    Caption := FName + ' ' + Caption;
    Button3.Visible := False;
    Button4.Visible := False;
    ComboBox1.PopupMenu := PopupMenu1;
    TheUserName := FName;
    TheMainForm.InitDBProperty(FName);
    ShowModal;
  end;
end;

procedure TUserForm.SetDBUpdate(Sender: TObject);
begin
  TAction(Sender).Enabled := CheckBox12.Checked;
end;

procedure TUserForm.UserGroupListContextPopup(Sender: TObject;
  MousePos: TPoint; var Handled: Boolean);
begin
  FGroupNode := UserGroupList.Selected;
end;

procedure TUserForm.UserListContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
begin
  FUserNode := UserList.Selected;
end;

procedure TUserForm.UserGroupListDragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
  Accept := False;
  if Source = UserList then
    Accept := True;
end;

procedure TUserForm.UserGroupListDragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin
  if (TTreeView(Sender).DropTarget <> nil) and (TTreeView(Sender).DropTarget = TTreeView(Sender).GetNodeAt(X, Y)) then
  begin
    FGroupNode := TTreeView(Sender).DropTarget;
    MoveUserTo.Execute;
  end;
end;

procedure TUserForm.UserListStartDrag(Sender: TObject;
  var DragObject: TDragObject);
begin
  FUserNode := UserList.Selected;
end;

procedure TUserForm.SetLoginTimesExecute(Sender: TObject);
begin
  if FName = '' then Exit;
  if LoginTimesForm <> nil then
    LoginTimesForm.Free;
  LoginTimesForm := TLoginTimesForm.Create(Application);
  with LoginTimesForm do
  begin
    TheUserName := FName;
    TheMainForm.InitUserLoginTimes(FName);
    Caption := FName + ' ' + Caption;
    ShowModal;
  end;
end;

procedure TUserForm.SetLoginTimesUpdate(Sender: TObject);
begin
  TAction(Sender).Enabled := UserRealName = 'ADMINISTRATOR';
end;

procedure TUserForm.UserListKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_DELETE then
  begin
    FUserNode := nil;
    DeleteUser.Update;
    DeleteUser.Execute;
  end;
end;

procedure TUserForm.UserGroupListKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_DELETE then
  begin
    FGroupNode := nil;
    DeleteUserGroup.Update;
    DeleteUserGroup.Execute;
  end;
end;

procedure TUserForm.SetCOMExecute(Sender: TObject);
begin
  if FName = '' then Exit;
  if SetCOMForm <> nil then
    SetCOMForm.Free;
  SetCOMForm := TSetCOMForm.Create(Application);
  with SetCOMForm do
  begin
    TheUserName := FName;
    TheMainForm.InitCOMSet(FName);
    Caption := FName + ' ' + Caption;
    ShowModal;
  end;
end;

end.

⌨️ 快捷键说明

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