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

📄 utypes.pas

📁 著名的SecureBlackBox控件完整源码
💻 PAS
字号:
unit uTypes;

interface

uses
  SysUtils;

type
  TUserName = string[50];
  TUserLogin = string[50];
  TIPAddress = string[15];
  TUserType = (utNone, utGuest, utRegistered);
  TSectionName = string[200];
  TTopicName = string[200];

  TVisibilityLevel = (vlPublic, vlPrivate);
  TAccessLevel = (alOpen, alClosed);

  TUserAccessLevel = (uaNone, uaRead, uaWrite, uaModerate);
  TFilterUserAccessRights = (frNone, frRead, frWrite, frModerate, frPower, frAll);

  PRightsRecord = ^TRightsRecord;
  TRightsRecord = packed record
    ID : integer;
    User : TUserLogin;
    ID_section : integer;
    UserAccessLevel : TUserAccessLevel;
    Deleted : boolean;
  end;

  PSectionRecord=^TSectionRecord;
  TSectionRecord = packed record
    ID : integer;
    Name : TSectionName;
    VisibilityLevel : TVisibilityLevel;
    AccessLevel : TAccessLevel;
    PostCount : integer;
    TopicsCount : integer;
    LastPostTimeStamp : TDateTime;
    LastPostTopicID : integer;
    LastPostTopicName : TTopicName;
    LastPostUserName : TUserName;
    LastPostUserType : TUserType;
    CreatedTimeStamp : TDateTime;
    SortOrder : cardinal;
    Deleted : boolean;
  end;

  PTopicRecord = ^TTopicRecord;
  TTopicRecord = packed record
    ID : integer;
    Name : TTopicName;
    RepliesCount : integer;
    LastPostTimeStamp : TDateTime;
    LastPostUser : TUserName;
    LastPostUserType : TUserType;
    CreatorUser : TUserName;
    CreatorUserType : TUserType;
    CreatedTimeStamp : TDateTime;
    First_Reply_ID : integer;
    Deleted : boolean;
  end;

  PReplyRecord = ^TReplyRecord;
  TReplyRecord = packed record
    ID : integer;
    ID_Topic : integer;
    User : TUserName;
    UserType : TUserType;
    TimeStamp : TDateTime;
    UserIP : TIPAddress;
    TextLength : integer;
    Deleted : boolean;
  end;

function VisibilityToStr(V: TVisibilityLevel): string;
function StrToVisibility(S : string) : TVisibilityLevel;
function AccessToStr(V: TAccessLevel): string;
function StrToAccess(S: string) : TAccessLevel;

function UserAccessToStr(V: TUserAccessLevel): string;
function StrToUserAccess(S: string) : TUserAccessLevel;

implementation

const
  cVisibilityLevelStrs: array [TVisibilityLevel] of String = ('Public', 'Private');
  cAccessLevelStrs: array [TAccessLevel] of String = ('Open', 'Closed');

function VisibilityToStr(V: TVisibilityLevel): string;
begin
  Result := cVisibilityLevelStrs[V];
end;

function StrToVisibility(S : string) : TVisibilityLevel;
begin
  if CompareText(cVisibilityLevelStrs[vlPublic], S)=0 then
    Result := vlPublic
  else
    Result := vlPrivate;
end;

function AccessToStr(V: TAccessLevel): string;
begin
  Result := cAccessLevelStrs[V];
end;

function StrToAccess(S: string) : TAccessLevel;
begin
  if CompareText(cAccessLevelStrs[alOpen], S)=0 then
    Result := alOpen
  else
    Result := alClosed;
end;

const
  cUserAccessLevelStrs: array [TUserAccessLevel] of String = ('none', 'read', 'write', 'moderate');

function UserAccessToStr(V: TUserAccessLevel): string;
begin
  Result := cUserAccessLevelStrs[V];
end;

function StrToUserAccess(S: string) : TUserAccessLevel;
begin
  if CompareText(cUserAccessLevelStrs[uaModerate], S)=0 then
    Result := uaModerate
  else if CompareText(cUserAccessLevelStrs[uaWrite], S)=0 then
    Result := uaWrite
  else if CompareText(cUserAccessLevelStrs[uaRead], S)=0 then
    Result := uaRead
  else
    Result := uaNone;
end;

end.

⌨️ 快捷键说明

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