на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


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


function EditDataTub(Table: TTable; IsNew: Boolean; Code: Integer):

                     Boolean;

implementation

{$R *.DFM}

function EditDataTub(Table: TTable; IsNew: Boolean; Code: Integer):

                     Boolean;

begin

  Result := False;

  with TEdTubForm.Create(Application) do

  try

    FCode := Code;

    Result := EditTub(Table, IsNew, Code);

  finally

    Free;

  end;

end;

function TEdTubForm.EditTub(Table: TTable; IsNew: Boolean; Code:

                            Integer): Boolean;

begin

  if Table <> nil then

    DataSource1.DataSet := Table

  else begin

    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


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.