![]() |
|
|
#1
|
|||
|
|||
|
Здравствуйте уважаемые знатоки Делфи.
Подскажите как сделать использование учетных записей. Т.е. при вводе в Edit1 (Имя) и Edit2 (пароль), и имя, пароль верны, должно происходить событие, например открытие формы программы. Мне нужно всего две учетные записи. |
|
#2
|
||||
|
||||
|
Для какой базы?
|
|
#3
|
|||
|
|||
|
БД Paradox, мне всего лишь необходимо 2-е учетные записи, чтобы когда мы ввели имя и пароль первой уч. записи выскакивала форма2, а при активации второй уч. записи - форма 3.
|
|
#4
|
||||
|
||||
|
Сделай таблицу с полями login, pass, Form_name ну и заполни ее.
В проекте сделай 3 формы. В первой форме поля ввода пароля и логина, подключение к базе, кнопка. Ну и в обработчике Database1 BeforeConnect (или onClick у ккнопки) Код:
Table1.Active:=True;
if Table1.Locate('Login;Pass',VarArrayOf([Edit1.text,Edit2.Text]),[]) = True then
Form_name.Show
else
ShowMessage('Неправильный логин/пароль!'); |
|
#5
|
|||
|
|||
|
Окей. а где идет раздиление на пароли (т.е. у меня получилось юзать оба пароля, но открывать только одну форму? я создал таблицу 1 и вней две записи
Login _____| ___Pass magazin ___ admin serv ___ admin |
|
#6
|
||||
|
||||
|
Цитата:
Сделай в таблипце еще поле Form_name Login | Pass | Form_Name magazin | admin | Form2 serv | admin | Form3 т.е. логину Magazin будет соответствовать Form2, а serv - Form3 Объяви переменную Form_Name:TForm; Код:
if Table1.Locate('Login;Pass',VarArrayOf([Edit1.text,Edit2.Text]),[]) = True then
begin
// присваиваем пер-ой Form_name имя Формы из таблицы
Form_name.Name:=Table1.FieldByName('Form_Name').AsString;
Form_name.Show
end
else
ShowMessage('Неправильный логин/пароль!');Последний раз редактировалось TOJluK, 16.04.2009 в 11:56. |
|
#7
|
|||
|
|||
|
Код:
if Table1.Locate('Login;Pass',VarArrayOf([Edit1.text,Edit2.Text]),[]) = True then
begin
// присваиваем пер-ой Form_name имя Формы из таблицы
Form_name.Name:=Table1.FieldByName('Form_Name').AsString;
Form_name.Show
end
else
ShowMessage('Неправильный логин/пароль!');Объявил переменную, создал поле Form_name, заполнил соответсвенно.В этом коде я лишь указал свою таблицу вместо Table1. Неработает пишит ошибку access violation at address in model Project 1 (нарушение доступа по адресу в проэкте). |
|
#8
|
||||
|
||||
|
Извини, я тупанул... Хотелось как лучше- получилось как всегда! )))
Вообщем сделай пока через IF. Типа: Код:
if Table1.Locate('Login;Pass',VarArrayOf([Edit1.text,Edit2.Text]),[]) = True then
begin
if Table1.FieldByName('Form_Name').AsString = 'Form2' then
Form2.Show;
if Table1.FieldByName('Form_Name').AsString = 'Form3' then
Form3.Show;
end
else
ShowMessage('Неправильный логин/пароль!');Последний раз редактировалось TOJluK, 17.04.2009 в 11:01. |
|
#9
|
|||
|
|||
|
Работает, спасибо большое Толик
|