Автор Тема: Как можно реализовать окно авторизации нk  (Прочитано 8038 раз)

0 Пользователей и 1 Гость просматривают эту тему.

ClasSiC

  • Гость
Помогите реализовать окно авторизации пользователей на Дэльфях 7!
Нужно чтобы при запуске программы - выходило окно для ввода Логина и пароля!

informatik

  • Специалист
  • *
  • Оффлайн Оффлайн
  • Сообщений: 552
  • Общая оценка: 2
  • Пол: Мужской
  • Почти я:)
Привет!
Для этой затеи существует компонент RXLogin (кажется называется). Где искать спроси у гугля.
Кстати могу помочь, но могу провести лишь листинг( Delphi 2005), а то 7й версии у меня не стоит.
Если нужно конечно
Все знать невозможно. Возможно знать многое.

informatik

  • Специалист
  • *
  • Оффлайн Оффлайн
  • Сообщений: 552
  • Общая оценка: 2
  • Пол: Мужской
  • Почти я:)
Вот листинги как я обещал
Unit1(окно авторизации)
--------------------------------------
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 // Здесь если в поле логина введено test, a в поле пароль 456, то запускается окно программы :)
 If (Edit1.Text=''test'') and (Edit2.Text=''456'')  then
   Begin
    form2:=Tform2.Create(Application);
    Form2.Show;
    Form1.Destroy;
   end
  else
   Begin
    MessageDlg(''Пароль или логин неверен.Работа программы будет завершена'',mtWarning,[Mbok],0);
    Application.Terminate;
   end;
end;

end.
------------------------------------------
unit2 (ваша программа)
-----------------------------------------
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}



end.
--------------------------------------------
P.S. Вообще то не рекомендуется хранить код в открытом виде
Кстати Form2 необходимо убрать из списка автосоздаваемых форм
P.P.S. Код, конечно, сыроват? но если доработать.. дерзайте.
Если что -обращаетесь?
Все знать невозможно. Возможно знать многое.

ClasSiC

  • Гость
Спасибо, единственное отличие 7-ки от 2005 дельфика, так это '''' (двойные кавычки)
слушай поставь аську, давай с тобой свяжемся!

informatik

  • Специалист
  • *
  • Оффлайн Оффлайн
  • Сообщений: 552
  • Общая оценка: 2
  • Пол: Мужской
  • Почти я:)
Привет! Моя Ася указана в профиле. Я сижу в ней только ночью. После 0 часов
Все знать невозможно. Возможно знать многое.

informatik

  • Специалист
  • *
  • Оффлайн Оффлайн
  • Сообщений: 552
  • Общая оценка: 2
  • Пол: Мужской
  • Почти я:)
to Hamman : если нет желания сидеть в асе ночью , тогда можно в форум. Но уговаривать никого я не буду
Все знать невозможно. Возможно знать многое.

ClasSiC

  • Гость
Слушай одна проблема, после того как я код откомпилировал, всё работает хорошо, но в процессах всегда остается сама программа, хотя я из неё уже вышел, приходится лезть в процессы и там её шатать, что-то не то, но что ...

informatik

  • Специалист
  • *
  • Оффлайн Оффлайн
  • Сообщений: 552
  • Общая оценка: 2
  • Пол: Мужской
  • Почти я:)
Интересно! У меня все работает. Проверь код.
Именно этот участок кода
If (Edit1.Text=''''test'''') and (Edit2.Text=''''456'''')  then
   Begin
    form2:=Tform2.Create(Application);
    Form2.Show;
    Form1.Destroy;
   end
  else
   Begin
    MessageDlg(''''Пароль или логин неверен.Работа программы будет завершена'''',mtWarning,[Mbok],0);
    Application.Terminate; // Может бы у тебя этой строки нет?
   end;
Все знать невозможно. Возможно знать многое.

ClasSiC

  • Гость
Интересно! У меня все работает. Проверь код.
Именно этот участок кода
If (Edit1.Text=''''''''test'''''''') and (Edit2.Text=''''''''456'''''''')  then
   Begin
    form2:=Tform2.Create(Application);
    Form2.Show;
    Form1.Destroy;
   end
  else
   Begin
    MessageDlg(''''''''Пароль или логин неверен.Работа программы будет завершена'''''''',mtWarning,[Mbok],0);
    Application.Terminate; // Может бы у тебя этой строки нет?
   end;

а может не стоит её мучать командами Дестрой-Терминаторами:)
а проще заменить

Application.Terminate - Form1.Close;
Form1.Destroy - Form1.Close;

ClasSiC

  • Гость
слушай а это  как сделать?
"Кстати Form2 необходимо убрать из списка автосоздаваемых форм"?

informatik

  • Специалист
  • *
  • Оффлайн Оффлайн
  • Сообщений: 552
  • Общая оценка: 2
  • Пол: Мужской
  • Почти я:)

а может не стоит её мучать командами Дестрой-Терминаторами:)
а проще заменить

Application.Terminate - Form1.Close;
Form1.Destroy - Form1.Close;
[/quote]

Нет тогда Форма2 не показывается :)
Насчет 2го вопроса-  в настройках
Project -Options- и две стрелочки < > лева - авто создавать форму, а правая - не создавать ее 

Без обид, но трудно было по менюшкам пройтись?
Все знать невозможно. Возможно знать многое.

ClasSiC

  • Гость
слушай а для чего нужно вообще убирать эту форму?
Если гораздо проще выбрать из контексного меню Main Form - ту форму которую надо замостить первой!

informatik

  • Специалист
  • *
  • Оффлайн Оффлайн
  • Сообщений: 552
  • Общая оценка: 2
  • Пол: Мужской
  • Почти я:)
слушай а для чего нужно вообще убирать эту форму?
Если гораздо проще выбрать из контексного меню Main Form - ту форму которую надо замостить первой!
Какую форму убирать?
В принципе неважно какую. Если ее не убирать  программа будет нагружать систему.
Все знать невозможно. Возможно знать многое.