pfgusermanager.pas

来自「delphi编写与Palm数据交换管道连接程序。」· PAS 代码 · 共 130 行

PAS
130
字号
{***************************************************************
 *
 * Unit Name: pfgUserManager
 * Purpose  :
 * Author   :
 * History  :
 *
 ****************************************************************}

unit pfgUserManager;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls;

type
  TpfgUserManager = class(TComponent)
  private
    FUserCount: SmallInt;
    function GetUserCount: Smallint;
    { Private declarations }
  protected
    { Protected declarations }
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    function GetUserList(ts:tstrings):SmallInt;
    function GetUserDirectory(const username:string):string;
    // Added by Mert //
    function AddUser(UserName:String;ProfileUser:boolean):LongInt;
    function DeleteUser(UserName:String):longint;
    // End of Mert //
  published
    { Published declarations }
    Property UserCount: Smallint  read GetUserCount;
  end;

procedure Register;

implementation
uses
  pfgWTypes,
  pfgUserData;
procedure Register;
begin
  RegisterComponents('Palm Pilot', [TpfgUserManager]);
end;

{ TpfgUserManager }

function TpfgUserManager.AddUser(UserName: String;ProfileUser:boolean): LongInt;
begin
Result:=UmAddUser(Pchar(UserName),ProfileUser);
end;

function TpfgUserManager.DeleteUser(UserName: String): longint;
Var
UserID:Longint;
begin
UmGetIDFromName(PCHAR(UserName),UserID);
result:=UmDeleteUser(UserID);
end;

constructor TpfgUserManager.Create(AOwner: TComponent);
begin
  inherited;
  FUserCount:=-1;
end;

destructor TpfgUserManager.Destroy;
begin
  inherited;

end;

function TpfgUserManager.GetUserCount: Smallint;
begin
  if FUserCount=-1 then
  begin
    FUserCount:= UmGetUserCount;
  end;
  result :=FUserCount;
end;

function TpfgUserManager.GetUserDirectory(const username: string): string;
var
//  i:smallint;
  dwUserID : LongInt;
  UserDirBuffer:string;
  UserDirBufSize: SmallInt;
begin
  UmGetIDFromName(PTChar(username),dwUserID);
  UserDirBufSize:=255;
  setlength(UserDirBuffer,UserDirBufSize);
  UmGetRootDirectory(pchar(UserDirBuffer), UserDirBufSize);
  setlength(UserDirBuffer,UserDirBufSize);
  result:= UserDirBuffer;
  UserDirBufSize:=255;
  setlength(UserDirBuffer,UserDirBufSize);
  UmGetUserDirectory(dwUserID,pchar(UserDirBuffer),UserDirBufSize);
  setlength(UserDirBuffer,UserDirBufSize);
  result:= result+UserDirBuffer;
end;

function TpfgUserManager.GetUserList(ts: tstrings): SmallInt;
var
  i:smallint;
  dwUserID : LongInt;
  UserNameBuffer:string;
  UserNameBufSize: SmallInt;
begin
  ts.BeginUpdate;
  ts.Clear;
  for i := 0 to UserCount-1 do
  begin
    UmGetUserID(i,dwUserID);
    UserNameBufSize:=100;
    setlength(UserNameBuffer,UserNameBufSize);
    UmGetUserName(dwUserID,PChar(UserNameBuffer),UserNameBufSize);
    setlength(UserNameBuffer,UserNameBufSize);
    ts.add(UserNameBuffer);
  end;
  ts.EndUpdate;
  result:=UserCount;
end;

end.

⌨️ 快捷键说明

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