RSS    

   Курсовая работа: Технология строительства метрополитена

  if glUserLevel <> ulAdministrator then begin

    Table := nil;

    SUName := glUserName;

  end;

  with TEditUserDialog.Create(Application) do

  try

    Result := EditUser(SUName, Table, IsNew);

  finally

    Free;

  end;

end;

{ TEditUserDialog }

function TEditUserDialog.EditUser(const UserName: string; Table:

                                  Ttable; IsNew: Boolean): Boolean;

begin

  NameEdit.Enabled := (glUserLevel = ulAdministrator);

  LevelGroup.Enabled := (glUserLevel = ulAdministrator);

  if Table <> nil then begin

    dsUsers.DataSet := Table;

    UsersTable.Close;

  end

  else begin

    UsersTable.Open;

    if UserName <> '' then begin

      if not UsersTable.FindKey([UserName]) then

        raise Exception.Create(SNotFound);

    end;

    dsUsers.DataSet := UsersTable;

  end;

  if IsNew then dsUsers.DataSet.Append

  else dsUsers.DataSet.Edit;

  ConfirmPassword.Text := PasswordEdit.Text;

  Result := ShowModal = mrOk;

end;

procedure TEditUserDialog.OKBtnClick(Sender: TObject);

begin

  if PasswordEdit.Text <> ConfirmPassword.Text then

    raise Exception.Create(SNoConfirmPassword);

  dsUsers.DataSet.Post;

  ModalResult := mrOk;

end;

procedure TEditUserDialog.CancelBtnClick(Sender: TObject);

begin

  dsUsers.DataSet.Cancel;

  ModalResult := mrCancel;

end;

procedure TEditUserDialog.FormHide(Sender: TObject);

begin

  dsUsers.DataSet.Cancel;

  UsersTable.Close;

end;

end.

unit Global;

interface

type

  TUserLevel = (ulInvalid, ulOperator, ulManager, ulAdministrator);

const

  InvalidID = 0;

  glUserLevel: TUserLevel = ulInvalid;

  glUserName: string = '';

  glUserID: Longint = InvalidID;

function cUserLevel(Code: Longint): TUserLevel;

implementation

function cUserLevel(Code: Longint): TUserLevel;

begin

  Result := ulInvalid;

  if (Code in [Integer(Low(TUserLevel))..Integer(High(TUserLevel))]) then

    Result := TUserLevel(Code);

end;

end.

 

unit Global;

interface

type

  TUserLevel = (ulInvalid, ulOperator, ulManager, ulAdministrator);

const

  InvalidID = 0;

  glUserLevel: TUserLevel = ulInvalid;

  glUserName: string = '';

  glUserID: Longint = InvalidID;

function cUserLevel(Code: Longint): TUserLevel;

implementation

function cUserLevel(Code: Longint): TUserLevel;

begin

  Result := ulInvalid;

  if (Code in [Integer(Low(TUserLevel))..Integer(High(TUserLevel))]) then

    Result := TUserLevel(Code);

end;

end.

 

unit Main;

interface

uses

  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,   

  Controls, Forms, Dialogs, SpeedBar, Menus, ExtCtrls, Placemnt, DB, 

  DBSecur, DBTables;

type

    TStaftForm = class(TForm)

    SpeedBar: TSpeedBar;

    ExitItem: TSpeedItem;

    MainMenu: TMainMenu;

    FileMenu: TMenuItem;

    InsuranceMenuItem: TMenuItem;

    FileMenuSeperator: TMenuItem;

    PrinterSetupMenuItem: TMenuItem;

    ExitMenuItem: TMenuItem;

    DictSetupMenu: TMenuItem;

    UserMenuItem: TMenuItem;

    WindowMenu: TMenuItem;

    TileMenuItem: TMenuItem;

    CascadeMenuItem: TMenuItem;

    MinimizeAllMenuItem: TMenuItem;

    ArrangeAllMenuItem: TMenuItem;

    HelpMenu: TMenuItem;

    HelpContentsMenuItem: TMenuItem;

    HelpMenuSeparator: TMenuItem;

    AboutMenuItem: TMenuItem;

    ChangePasswordItem: TSpeedItem;

    PrintSetupItem: TSpeedItem;

    CalcItem: TSpeedItem;

    PrinterSetup: TPrinterSetupDialog;

    TileWindowsItem: TSpeedItem;

    CascadeWindowsItem: TSpeedItem;

    HintPanel: TPanel;

    DBSecurity1: TDBSecurity;

    Database1: TDatabase;

    EditItem: TMenuItem;

    FormPlacement: TFormPlacement;

    procedure ArrangeAllMenuItemClick(Sender: TObject);

    procedure TileMenuItemClick(Sender: TObject);

    procedure CascadeMenuItemClick(Sender: TObject);

    procedure MinimizeAllMenuItemClick(Sender: TObject);

    procedure AboutMenuItemClick(Sender: TObject);

    procedure PrinterSetupMenuItemClick(Sender: TObject);

    procedure ExitMenuItemClick(Sender: TObject);

    procedure FormStorageRestorePlacement(Sender: TObject);

    procedure FormStorageSavePlacement(Sender: TObject);

    function DBSecurity1CheckUser(UsersTable: TTable;

const

    Password: String): Boolean;

    procedure UserMenuItemClick(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure FormDestroy(Sender: TObject);

    procedure InsuranceMenuItemClick(Sender: TObject);

    procedure ShowHint(Sender: TObject);

    procedure EditItemClick(Sender: TObject);

private

    procedure SetUserLevel;

    procedure UpdateMenuItems(Sender: TObject);

    function ShowForm(FormClass: TFormClass): TForm;

end;

var

  StaftForm: TStaftForm;

implementation

uses

   About, rxIni, VCLUtils, Global, AppUtils, EditUser, UserList,

   EditTub, Calc1;

{$R *.DFM}

const

  siMDIChilds = 'OpenMDIChilds';

procedure TStaftForm.SetUserLevel;

begin

  case glUserLevel of

    ulOperator:

      begin

        DictSetupMenu.Visible := False;

        DictSetupMenu.Enabled := False;

        UserMenuItem.Visible := False;

        UserMenuItem.Enabled := False;

      end;

    ulManager:

      begin

        DictSetupMenu.Visible := True;

        DictSetupMenu.Enabled := True;

        UserMenuItem.Visible := False;

        UserMenuItem.Enabled := False;

      end;

    ulAdministrator:

      begin

        DictSetupMenu.Visible := True;

        DictSetupMenu.Enabled := True;

        UserMenuItem.Visible := True;

        UserMenuItem.Enabled := True;

      end;

  end;

end;

procedure TStaftForm.TileMenuItemClick(Sender: TObject);

begin

  Tile;

end;

procedure TStaftForm.CascadeMenuItemClick(Sender: TObject);

begin

  Cascade;

end;

procedure TStaftForm.MinimizeAllMenuItemClick(Sender: TObject);

var

  I: Integer;

begin

  for I := MDIChildCount - 1 downto 0 do

    MDIChildren[I].WindowState := wsMinimized;

end;

procedure TStaftForm.ArrangeAllMenuItemClick(Sender: TObject);

begin

  ArrangeIcons;

end;

procedure TStaftForm.AboutMenuItemClick(Sender: TObject);

begin

  ShowAboutDialog('Расчет тюбинговой обделки', 'Королев А.В.',  

                  'МГГУ', nil, 1, 0, 1996);

end;

procedure TStaftForm.PrinterSetupMenuItemClick(Sender: TObject);

begin

  PrinterSetup.Execute;

end;

procedure TStaftForm.ExitMenuItemClick(Sender: TObject);

begin

  Close;

end;

function TStaftForm.ShowForm(FormClass: TFormClass): TForm;

var

  Form: TForm;

begin

  Result := nil;

  StartWait;

  try

    Form := FindForm(FormClass);

    if Form = nil then

      Application.CreateForm(FormClass, Form);

    with Form do begin

      if WindowState = wsMinimized then WindowState := wsNormal;

      Show;

    end;

    Result := Form;

  finally

    StopWait;

  end;

end;

procedure TStaftForm.FormStorageRestorePlacement(Sender: TObject);

var

  IniFile: TrxIniFile;

  List: TStrings;

  I: Integer;

  FormClass: TFormClass;

  Form: TForm;

begin

  StartWait;

  try

    SpeedBar.Visible := True;

    IniFile := TrxIniFile.Create(FormPlacement.IniFileName);

    try

      if (glUserLevel in [ulManager, ulAdministrator]) then begin

        List := TStringList.Create;

        try

          IniFile.ReadList(siMDIChilds, List);

          for I := 0 to List.Count - 1 do begin

            FormClass := TFormClass(GetClass(List[I]));

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.