Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2014, 22:00   #1
tane
Пользователь
 
Регистрация: 14.12.2013
Сообщений: 64
По умолчанию Создание несколько простых паролей в Delphi

Здравствуйте,господа!
Лабораторная по теме :"Создание самого простого Windows-дополнения в Delphi, с использованием условного оператора и оператора выбора."

Напишите программу, что по паролю будет определять степень доступности сотрудника к секретной информации в базе данных. Доступ к базе имеют только шесть человек, разбитых на три группы по степени доступа. Они имеют следующие пароли:
• 9583, 1747 - доступные модули базы А, Б, С
• 3331, 7922 - доступные модули базы Б, С
• 9455, 8997 - доступный модуль базы С

Представляю это так :
При запуске появляется Form1 с Edit и Button.Если вводит сотрудник из первой группы,то,допустим открывается три доступных модуля(не представляю что это,наверное form2 - это модуль А(и там какие-то дынные),Form3 - Б...).Я вот не знаю, куда мы эти пароли записываем, и вообще, как реализовать эту программу,помогите пожалуйста!
tane вне форума Ответить с цитированием
Старый 18.01.2014, 22:30   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от tane Посмотреть сообщение
...Я вот не знаю, куда мы эти пароли записываем, ..
Так как задача учебная, можно прямо в тело программы. Например
Код:
const
 GROUP_ABC1=9583;
 GROUP_ABC2=1747;
 GROUP_BC1=3331;
 GROUP_BC2=7922;
 GROUP_C1=9455;
 GROUP_C2=8997;
Предполагается, что никому не будет дозволено покопаться в *.exe - файле , а исходник будет положен в сейф начальника 1-го отдела.
type_Oleg вне форума Ответить с цитированием
Старый 18.01.2014, 22:51   #3
tane
Пользователь
 
Регистрация: 14.12.2013
Сообщений: 64
По умолчанию

Смотрите,я вот так сделал,но мне кажется ,что здесь можно укоротить ее(как?).И как сделать,если мы ввели не правильный пароль(кроме наших шести),что бы выводило сообщение :"неправильный пароль"?
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;   

implementation

uses Unit2, Unit3, Unit4;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  

  if (Edit1.Text = '9583') or (Edit1.Text = '1747') then
  begin

    Form2.Show;
    Form3.Show;
    Form4.Show;
     Form1.Hide;
  end;

 begin
       if (Edit1.Text = '3331') or (Edit1.Text = '7922') then
       begin
    Form2.Show;
    Form3.Show;
    Form1.Hide;
  end;
     end;
         begin
       if (Edit1.Text = '9455') or (Edit1.Text = '8997') then
       begin
    Form2.Show;

    Form1.Hide;
  end;
     end;

end;

end.
Вложения
Тип файла: rar Password.rar (162.4 Кб, 22 просмотров)
tane вне форума Ответить с цитированием
Старый 18.01.2014, 23:13   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

А зачем сразу открывать, может ему не надо сразу все 3 базы.
Лучше положить на главную форму 3 кнопки Button, открывающие каждая свою форму. Изначально кнопки невидимые (свойство Visible ) или нерабочие ( свойство Enabled).
И в зависимости от пароля делать их видиммыми/активными.
После закрытия этих секретных форм кнопки снова деакивировать.

PS Лучше так
Код:
procedure TForm1.Button1Click(Sender: TObject);
var cod:Integer;
begin
  cod:=StrToIntDef(Edit1.Text,0);
  if cod= //  и т.д.
И у Edit1 задать PasswordChar какой-нибудь символ, чтобы не подглядели.

Последний раз редактировалось type_Oleg; 18.01.2014 в 23:39.
type_Oleg вне форума Ответить с цитированием
Старый 19.01.2014, 01:15   #5
tane
Пользователь
 
Регистрация: 14.12.2013
Сообщений: 64
По умолчанию

Как сделать условие,что бы при вводе неправильного пароля кнопки не отображались?
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2, Unit3, Unit4;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

 var cod:Integer;
begin
  cod:=StrToIntDef(Edit1.Text,0);
if (cod=9583) or (cod=1747) then

Button2.Visible:=True;
Button3.Visible:=True;
Button4.Visible:=True ;

if (cod=3331) or (cod=7922) then
Button3.Visible:=True;
Button4.Visible:=True;
 if (cod=9455) or (cod=8997) then
Button4.Visible:=True ;
end;






    procedure TForm1.Button5Click(Sender: TObject);
begin
Button2.Visible:=False;
Button3.Visible:=False;
Button4.Visible:=False;
Edit1.Text:='';
end;

end.
tane вне форума Ответить с цитированием
Старый 19.01.2014, 01:32   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

В первых двух if операторные скобки begin..end забыли.
А так, вроде должно работать.

А вообще-то можно изящнее записать:
Код:
 Button2.Visible:=(cod=9583) or (cod=1747);
 Button3.Visible:=(cod=9583) or (cod=1747) or (cod=3331) or (cod=7922);
 Button4.Visible:=(cod=9583) or (cod=1747) or (cod=3331) or (cod=7922) or (cod=9455) or (cod=8997);
И все .. Правда без условного оператора получилось.
type_Oleg вне форума Ответить с цитированием
Старый 19.01.2014, 01:33   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
case cod of
  9583, 1747: cod := 7;
  3331, 7922: cod := 3;
  9455, 8997: cod := 1;
  else cod := 0;
end;
Button2.Visible := cod and 4 > 0;
Button3.Visible := cod and 2 > 0;
Button4.Visible := cod and 1 > 0;
Так можно приделать оператор выбора
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 19.01.2014, 18:49   #8
tane
Пользователь
 
Регистрация: 14.12.2013
Сообщений: 64
По умолчанию

Спасибо всем за помощь!
tane вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько простых задач Pasca/Delphi denisbrain Паскаль, Turbo Pascal, PascalABC.NET 1 27.11.2012 16:47
несколько простых задач C++ mego4el Помощь студентам 3 15.02.2011 23:27
Создание простых проектов(Delphi) belkooo Помощь студентам 1 19.12.2010 22:10
Несколько простых задач по JS maoK Помощь студентам 0 01.12.2009 20:33
Создание паролей в Delphi RockForr Общие вопросы Delphi 40 29.04.2009 19:35