authsettingsform.pas
来自「著名的SecureBlackBox控件完整源码」· PAS 代码 · 共 145 行
PAS
145 行
unit AuthSettingsForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ComCtrls, DemoSettings, ImgList;
type
TfrmAuthSettings = class(TForm)
gbUsers: TGroupBox;
lUsers: TLabel;
lvUsers: TListView;
btnAdd: TBitBtn;
btnRemove: TBitBtn;
btnEdit: TBitBtn;
btnOK: TButton;
imgUsers: TImageList;
procedure btnOKClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnRemoveClick(Sender: TObject);
procedure btnEditClick(Sender: TObject);
procedure lvUsersSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
private
procedure Initialize;
procedure OutputUserInfo(Item: TListItem; User : TSSHServerUser);
public
{ Public declarations }
end;
var
frmAuthSettings: TfrmAuthSettings;
implementation
{$R *.DFM}
uses
SBSSHConstants, UserSettingsForm;
procedure TfrmAuthSettings.Initialize;
var
I : integer;
Item: TListItem;
begin
lvUsers.Items.Clear;
for I := 0 to Settings.UserCount - 1 do
begin
Item := lvUsers.Items.Add;
Item.ImageIndex := 0;
OutputUserInfo(Item, Settings.Users[I]);
end;
end;
procedure TfrmAuthSettings.OutputUserInfo(Item: TListItem; User : TSSHServerUser);
var
S : string;
begin
Item.Caption := User.Name;
S := '';
if User.AuthTypes and SSH_AUTH_TYPE_PASSWORD > 0 then
S := S + 'password, ';
if User.AuthTypes and SSH_AUTH_TYPE_PUBLICKEY > 0 then
S := S + 'public-key, ';
if User.AuthTypes and SSH_AUTH_TYPE_KEYBOARD > 0 then
S := S + 'keyboard-interactive, ';
if S <> '' then
begin
if User.AuthAll then
S := Copy(S, 1, Length(S) - 2) + ' (all)'
else
S := Copy(S, 1, Length(S) - 2) + ' (any)';
end;
Item.SubItems.Clear;
Item.SubItems.Add(S);
Item.Data := User;
end;
procedure TfrmAuthSettings.btnOKClick(Sender: TObject);
begin
ModalResult := mrOk;
end;
procedure TfrmAuthSettings.btnCancelClick(Sender: TObject);
begin
ModalResult := mrCancel;
end;
procedure TfrmAuthSettings.btnAddClick(Sender: TObject);
var
NewUser: string;
I: integer;
Item: TListItem;
begin
NewUser := InputBox('New user', 'Please enter the Username for new user:', '');
if NewUser <> '' then
begin
I := Settings.AddUser;
Settings.Users[I].Name := NewUser;
Item := lvUsers.Items.Add;
Item.Caption := Settings.Users[I].Name;
Item.Data := Settings.Users[I];
end;
end;
procedure TfrmAuthSettings.FormShow(Sender: TObject);
begin
Initialize;
end;
procedure TfrmAuthSettings.btnRemoveClick(Sender: TObject);
begin
if (lvUsers.Selected <> nil) and (lvUsers.Selected.Data <> nil) then
begin
Settings.RemoveUser(TSSHServerUser(lvUsers.Selected.Data));
lvUsers.Items.Delete(lvUsers.Selected.Index);
end;
end;
procedure TfrmAuthSettings.btnEditClick(Sender: TObject);
begin
if (lvUsers.Selected <> nil) and (lvUsers.Selected.Data <> nil) then
begin
frmUserSettings.Initialize(TSSHServerUser(lvUsers.Selected.Data));
if frmUserSettings.ShowModal = mrOk then
begin
Settings.Save;
end;
OutputUserInfo(lvUsers.Selected, TSSHServerUser(lvUsers.Selected.Data));
end;
end;
procedure TfrmAuthSettings.lvUsersSelectItem(Sender: TObject;
Item: TListItem; Selected: Boolean);
begin
btnRemove.Enabled := (Item <> nil) and (Item.Data <> nil) and Selected;
btnEdit.Enabled := btnRemove.Enabled;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?