скачать рефераты
  RSS    

Меню

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

скачать рефераты

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

    Table1.Open;

    DataSource1.DataSet := Table1;

  end;

  if IsNew then begin

    DataSource1.DataSet.Append;

    DataSource1.DataSet.FieldByName('Stuff').AsInteger := Code;

  end

    else DataSource1.DataSet.Edit;

  Result := ShowModal = mrOk;

  if Result then

    DataSource1.DataSet.Post

  else

    DataSource1.DataSet.Cancel;

end;

procedure TEdTubForm.FormCreate(Sender: TObject);

begin

  Query1.Active := False;

  Query1.ParamByName('St').AsInteger := FCode;

  Query1.Active := True;

end;

end.

unit EditUser;

interface

uses

  SysUtils, WinTypes, WinProcs, Classes, Graphics, Forms, Controls,  

  Buttons, StdCtrls, ExtCtrls, DBCtrls, Mask, DB, DBTables;

type

    TEditUserDialog = class(TForm)

    OKBtn: TBitBtn;

    CancelBtn: TBitBtn;

    UsersTable: TTable;

    dsUsers: TDataSource;

    NameEdit: TDBEdit;

    FullNameEdit: TDBEdit;

    GroupBox: TGroupBox;

    PasswordEdit: TDBEdit;

    ConfirmPassword: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    LevelGroup: TDBRadioGroup;

    procedure OKBtnClick(Sender: TObject);

    procedure CancelBtnClick(Sender: TObject);

    procedure FormHide(Sender: TObject);

private

    { Private declarations }

public

    { Public declarations }

    function EditUser(const UserName: string; Table: TTable; IsNew:

                      Boolean): Boolean;

end;

var

  EditUserDialog: TEditUserDialog;

function EditUserData(const UserName: string; Table: TTable;

                      IsNew: Boolean): Boolean;

implementation

uses

  Global, Crypt;

{$R *.DFM}

const

  SNotFound = 'Записей не обнаружено';

  SNoConfirmPassword = 'Вы ввели разные пароли. Проверьте  

                        правильность ввода';

 

function EditUserData(const UserName: string; Table: TTable;

                      IsNew: Boolean): Boolean;

var

  SUName: string;

begin

  Result := False;

  SUName := UserName;

  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]));

            if FormClass <> nil then ShowForm(FormClass);

          end;

        finally

          List.Free;

        end;

      end;

    finally

      IniFile.Free;

    end;

  finally

    StopWait;

  end;

end;

procedure TStaftForm.FormStorageSavePlacement(Sender: TObject);

var

  IniFile: TrxIniFile;

  List: TStrings;

  I: Integer;

begin

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

  try

    IniFile.EraseSection(siMDIChilds);

    List := TStringList.Create;

    try

      for I := MDIChildCount - 1 downto 0 do

        List.Add(MDIChildren[I].ClassName);

      if List.Count > 0 then

        IniFile.WriteList(siMDIChilds, List);

    finally

      List.Free;

    end;

  finally

    IniFile.Free;

  end;

end;

function TStaftForm.DBSecurity1CheckUser(UsersTable: TTable;

const

  Password: String): Boolean;

begin

  Result := (Password = UsersTable.FieldByName('Password').AsString);

  if Result then begin

    glUserName := UsersTable.FieldByName('UserName').AsString;

    glUserID := UsersTable.FieldByName('ID').AsInteger;

    glUserLevel := cUserLevel(UsersTable.FieldByName('UserLevel')

                   .AsInteger);

    Result := (glUserLevel <> ulInvalid);

  end;

  if Result then SetUserLevel;

end;

procedure TStaftForm.UserMenuItemClick(Sender: TObject);

begin

  ShowForm(TUserListForm);

end;

procedure TStaftForm.ShowHint(Sender: TObject);

begin

  HintPanel.Caption := Application.Hint;

end;

procedure TStaftForm.UpdateMenuItems(Sender: TObject);

begin

  { Enable or disable menu items and buttons }

  CascadeMenuItem.Enabled := MDIChildCount > 0;

  TileMenuItem.Enabled := MDIChildCount > 0;

  ArrangeAllMenuItem.Enabled := MDIChildCount > 0;

  MinimizeAllMenuItem.Enabled := MDIChildCount > 0;

  TileWindowsItem.Enabled := MDIChildCount > 0;

  CascadeWindowsItem.Enabled := MDIChildCount > 0;

end;

procedure TStaftForm.FormCreate(Sender: TObject);

begin

  Application.OnHint := ShowHint;

  Screen.OnActiveFormChange := UpdateMenuItems;

  SetAutoSubClass(True);

  { set wait cursor to SQL }

  WaitCursor := crSQLWait;

  { register classes of MDI-child forms }

  {RegisterClasses([TDictForm, TRatesForm, TItemReportForm]);}

end;

procedure TStaftForm.FormDestroy(Sender: TObject);

begin

  Screen.OnActiveFormChange := nil;

  Application.HelpCommand(HELP_QUIT,0);

end;

procedure TStaftForm.InsuranceMenuItemClick(Sender: TObject);

begin

  Form1.ShowModal;

end;

procedure TStaftForm.EditItemClick(Sender: TObject);

begin

  EditDataForm.Show;

end;

end.

unit UserList;

interface

uses

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

  Controls, Forms, Dialogs, DBCtrls, ExtCtrls, DBTables, DB, Grids,

  DBGrids, RXDBCtrl, Placemnt, StdCtrls, Buttons;

type

    TUserListForm = class(TForm)

    UsersTable: TTable;

    dsUsers: TDataSource;

    UsersGrid: TrxDBGrid;

    UsersTablePassword: TStringField;

    Panel1: TPanel;

    DBNavigator: TDBNavigator;

    FormPlacement: TFormPlacement;

    UsersTableID: TFloatField;

    UsersTableUserName: TStringField;

    UsersTableFullName: TStringField;

    UsersTableUserLevel: TFloatField;

    BitBtn1: TBitBtn;

    procedure DBNavigatorClick(Sender: TObject; Button:

                               TNavigateBtn);

    procedure UsersGridDblClick(Sender: TObject);

    procedure FormPlacementSavePlacement(Sender: TObject);

    procedure FormPlacementRestorePlacement(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

end;

var

  UserListForm: TUserListForm;

implementation

uses

   EditUser, IniFiles, Global;

const

  SAccessDenied = 'Недостаточно прав. Доступ запрещен';

{$R *.DFM}

procedure TUserListForm.DBNavigatorClick(Sender: TObject;

                                         Button: TNavigateBtn);

begin

  case Button of

    nbInsert:

      begin

        EditUserData('', UsersTable, True);

      end;

    nbEdit:

      begin

        EditUserData('', UsersTable, False);

      end;

  end;

end;

procedure TUserListForm.UsersGridDblClick(Sender: TObject);

begin

  EditUserData('', UsersTable, False);

end;

procedure TUserListForm.FormPlacementSavePlacement(Sender: TObject);

var

  IniFile: TIniFile;

  I: Integer;

begin

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

  try

    for I := 0 to ComponentCount - 1 do begin

      if Components[I] is TrxDBGrid then

        TrxDBGrid(Components[I]).SaveLayout(IniFile);

    end;

  finally

    IniFile.Free;

  end;

end;

procedure TUserListForm.FormPlacementRestorePlacement(Sender:

                                                      TObject);

var

  IniFile: TIniFile;

  I: Integer;

begin

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

  try

    for I := 0 to ComponentCount - 1 do begin

      if Components[I] is TrxDBGrid then

        TrxDBGrid(Components[I]).RestoreLayout(IniFile);

    end;

  finally

    IniFile.Free;

  end;

end;

procedure TUserListForm.FormCreate(Sender: TObject);

begin

  if not (glUserLevel in [ulAdministrator]) then begin

    raise Exception.Create(SAccessDenied);

  end;

  UsersTable.Open;

end;

procedure TUserListForm.FormClose(Sender: TObject;

var

  Action: TCloseAction);

begin

  Action := caFree;

end;

end.

program Shaft;

uses

  Forms,

  Main in 'MAIN.PAS' {StaftForm},

  Global in 'GLOBAL.PAS',

  EditUser in 'EDITUSER.PAS',

  UserList in 'USERLIST.PAS' {UserListForm},

  Edittub in 'EDITTUB.PAS' {EditDataForm},

  Editform in 'EDITFORM.PAS' {EdTubForm},

  Calc1 in 'CALC1.PAS' {Form1},

  Draw in 'DRAW.PAS' {DrawForm};

{$R *.RES}

begin

  Application.CreateForm(TStaftForm, StaftForm);

  Application.CreateForm(TEditDataForm, EditDataForm);

  Application.CreateForm(TEdTubForm, EdTubForm);

  Application.CreateForm(TForm1, Form1);

  Application.CreateForm(TDrawForm, DrawForm);

  Application.Run;

end.

5. Список использованной литературы.

1. Баклашов И.В., Картозия Б.А. “Механика подземных сооружений и конструкций крепей” - М., Недра, 1992, 543 с.

2. Насонов И.Д., Федюкин В.А., Шуплик М.Н., “Технология строительства подземных сооружений” - М., Недра, 1992, 285 с.

3. Насонов И.Д., Шуплик М.Н. “Закономерности формирования ледопородных ограждений при сооружении стволов шахт” - М., Недра, 1976, 237 с.

4. Храпов В.Г. “Тоннели и метрополитены” - М., Транспорт, 1989, 383 с.

5. Белый В.В. “Справочник инженера шахтостроителя” в 2-х томах - М., 1983

6. Туренский Н.Г., Ледяев А.П. “Строительство тоннелей и метрополитенов” - М., Транспорт, 1992, 264 с.

7. Богомолов Г.М., Голицынский Д.М. Сеславинский С.И. “Справочник инженера тоннельщика” - М., Транспорт, 1993, 389 с.


Страницы: 1, 2, 3, 4, 5, 6, 7


Новости

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

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

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.