Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как запаролить открытие формы в Delphi?


Автор: AlexSn 9.12.2004, 06:49
Подскажите как запаролить открытие формы в Delphi

Автор: Satana 9.12.2004, 08:11
Если я тебя правильно понял, то самое простое для тебя будет перед показом требуемой формы вывести еще одну с логином и паролем если все совпало то показываешь искомую форму если нет пишешь типа access dinied smile

Автор: Vladimir13 9.12.2004, 08:14
на FormActivate скрыть все объекты, оставив толькокнопку и, например,Edit. Потом проверяем условие: if Edit1.text='password' then <и все что надо делаем видимым>
Можно еще заморочиться и прописать все через коды клавиш,а в edit'е печатать *, т.е. при нажатие на клавишу считывать ее код в строку ( а:string ), а в Edit печатать *.
Выбор пользователя - через ComboBox. Там можно автоматически добавлять новых пользователей.

Автор: Patrius 9.12.2004, 08:49
Vladimir13
Цитата
на FormActivate скрыть все объекты, оставив толькокнопку и, например,Edit.

интересно а что ты предложишь если ентих самых обьектов окло 15 - 20....
по моему разумнее добавить еще одну "парольную" форму...
а идея по поводу
Цитата

Выбор пользователя - через ComboBox

интересная задумка...
кста енту парольную форму действительно мона кинуть в FormActivate...

Добавлено @ 08:50
только один нюанс...
а где и в каком виде ты предлогаешь хранить список юзверей и их пасворды?

Автор: Vladimir13 9.12.2004, 09:36
все очень просто: все храниться в Memo как строки. соответственно, проверяем в зависимости от имени (ComboBox1.Text) ставим в ComboBox2.text его пароль.
if ComboBox1.Text='Name1' then ComboBox2.Text:=memo1.Lines[1]; или сразу ComboBox2.Text:='Password1';

Автор: Satana 9.12.2004, 10:16
Цитата(Patrius @ 9.12.2004, 08:49)
Vladimir13
Цитата

интересно а что ты предложишь если ентих самых обьектов окло 15 - 20....

А можно очень просто решить эту проблему помести все компоненты на Panel, и растяни ее на всю форму и простым движением
Panel1.visible:=true

Компоненты на панели становятся видимыми smile

Автор: Ddddddelphi 9.12.2004, 10:25
Программист может поместить любой код до обращения к методу Application.Run. В частности, он может показать диалоговое окно с запросом пароля и блокировать вызов Application.Run, если введенный пользователем пароль неверен. В следующем примере в проекте используются две формы: стандартная форма InputQuery и главная форма MainForm. Форма InputQuery создается при обращении к одноименной функции, определенной в модуле Dialogs. Она представляет собой небольшое диалоговое окно с однострочным редактором TEdit и двумя кнопками — ОК и Cancel. В окне пользователь должен ввести пароль (Delphi) и нажать Enter.

Код

program Password;
 
uses
 Forms,
 Dialogs,  // В этом модуле определена функция InputQuery  
 Unit1 in 'Unit1.pas' {MainForm};
 
{$R *.RES}
var
 Passwrd: String;
begin
 // Запрашиваем пароль:
 if InputQuery('Окно ввода пароля','Введите пароль:',Passwrd)    then
 // Проверяем его:
 if Passwrd = 'Delphi' then
 begin  // Все в порядке, пароль верен
   Application.CreateForm(TMainForm, MainForm);
   Application.Run;
 end else
   ShowMessage('Пароль не верен!');
end.

Автор: Vladimir13 9.12.2004, 10:59
c учетом того что AlexSn - - новичок, то ему будет понятнее мой способ, оптимизированный Satana.
Satana - умное решение, я не догадался smile

Автор: SlaUr 9.12.2004, 14:43
В JEDI есть специальна компонета - login,Pasword
Если ее кинуть на главную форму то перед открытием формы возникнет окно где нужно ввести логин и пасворд.

Автор: Zero 9.12.2004, 19:24
Ddddddelphi, ты тоже пользуешься книгой В. Фаронов, из Delphi6. smile

Автор: Ddddddelphi 9.12.2004, 19:49
нет у меня Фаронов Delphi 5, а приведённый мной код по-моему он писал, но только я нашёл это в инете в статейтке "Заметки прграммиста". А тебе его книга понравилась? Уж слишком у него всё поверхностно описывается... сейчас читаю Архангельского..... smile

Автор: Zero 10.12.2004, 00:37
Цитата(Ddddddelphi @ 9.12.2004, 19:49)
А тебе его книга понравилась? Уж слишком у него всё поверхностно описывается...

Конечно, понравилась!!! Я с ней только и работаю, и ещё с форумом. smile
И вовсе там не поверхносно описано, там описано основа Delphi, а дальше к основным компонентам свойства. Начинал учить по ней с нуля (за исключением того что уже знал Паскаль), и помоему боле-менее научился, по крайней мере получил представление о Delphi. smile

Автор: RA 10.12.2004, 01:36
Цитата(Ddddddelphi @ 9.12.2004, 10:25)

program Password;

uses
Forms,
Dialogs,  // В этом модуле определена функция InputQuery 
Unit1 in 'Unit1.pas' {MainForm};

{$R *.RES}
var
Passwrd: String;
begin
// Запрашиваем пароль:
if InputQuery('Окно ввода пароля','Введите пароль:',Passwrd)    then
// Проверяем его:
if Passwrd = 'Delphi' then
begin  // Все в порядке, пароль верен
   Application.CreateForm(TMainForm, MainForm);
   Application.Run;
end else
   ShowMessage('Пароль не верен!');
end.



Хочу добавить, юзание выше описанного примера совершенно безполезно
если строка:
Код

 Application.CreateForm(TForm1, Form1);

небыла удалена, из Project.dpr.

Автор: J. Bravo 10.12.2004, 02:31
Цитата(Vladimir13 @ 9.12.2004, 08:14)
при нажатие на клавишу считывать ее код в строку ( а:string ), а в Edit печатать *.

Для этого нужно использовать свайство PasswordChar.
Например, так:
Код
Edit1.PasswordChar := '*';

Автор: Medved 11.12.2004, 14:51
Цитата(Zero @ 9.12.2004, 22:24)
Ddddddelphi, ты тоже пользуешься книгой В. Фаронов, из Delphi6. smile


Фараонова я вообще не воспринимаю. Много и ни о чем. ИМХО единственный грамотный русскоязычный автор - Шумаков, другие только вату катают. Если хотите получить профессиональные знания, даже если вы только начинающий, то я бы порекомендовал книги зарубежных авторов.

Автор: RA 11.12.2004, 22:16
Цитата(Pegas @ 11.12.2004, 14:51)
Фараонова я вообще не воспринимаю. Много и ни о чем. ИМХО единственный грамотный русскоязычный автор - Шумаков, другие только вату катают. Если хотите получить профессиональные знания, даже если вы только начинающий, то я бы порекомендовал книги зарубежных авторов.


Это точно.

Автор: Zero 12.12.2004, 12:26
Спасибо, так и сделаю... Тоже самое нам постоянно говорит наш лектор по КГ, и всё время опускает рускоязычных авторов.

Автор: Girder 12.12.2004, 12:34
Цитата(AlexSn @ 9.12.2004, 06:49)
Подскажите как запаролить открытие формы в Delphi
А нафиг? smile

AlexSn вот http://www.delphikingdom.com/talk/sq019.htm можеш почерпнуть информацию для размышления. Старая конечно дискусия... но думаю что для многих будет интересно её почитать.

Удачи.

Автор: Vladimir13 12.12.2004, 20:13
есть хорошая книга Архангельский А.Я. "Delphi - 6" супер книга. А Фаронов - полная чушь, а Паскаль у него хороший.

Автор: Ddddddelphi 12.12.2004, 22:07
Цитата(Vladimir13 @ 12.12.2004, 20:13)
есть хорошая книга Архангельский А.Я. "Delphi - 6" супер книга. А Фаронов - полная чушь,  а Паскаль у него хороший.

да Архангельского хорошая книга, только толстая, когда ж я её до конца дочитаю, но мне понравилось что у него более полно описываются и компотенты и другое в работе с Delphi,
а у Фаронова простые программы, которые он приводит в своей книге нужно додумывать самому до ума......вообще-то для работы с простыми програмами мне в маге приглянулась книга "delphi в задач" Культин...просмотрел там и мп3-проигрыв, тест-проги, ежедневник...
для начинающих стоит покупать...особенно после Фаронова когда после прочтение его книги накапливаются вопросы!!

Автор: Medved 12.12.2004, 22:11
Архангельский А.Я. тоже поверхностно описывает. Лично мне не нравиться, даже если я ставлю себя на место новичка.

Автор: Satana 12.12.2004, 23:46
А я ваще вырос на статьях в нете и ничо работаем потихоньку smile

Автор: Ddddddelphi 13.12.2004, 00:03
Цитата(Satana @ 12.12.2004, 23:46)
А я ваще вырос на статьях в нете и ничо работаем потихоньку smile

на статьях - прикольно, накопал инфу про работу с реестром - радость, на что ещё натолкнулся, бд простенькую построил - радость, sql - захотел добавить, опять поиск и т.д. Satana, или ты через форум больше получал? smile за 4 дня надоело.....купил книгу о которых в форумах можно отзывов было...

Автор: Satana 13.12.2004, 00:12
Ddddddelphi не знаю, я в этом жмот smile мне проще в яндухе набрать что мне нада и работать с тем что он мне выдаст smile

Автор: Vladimir13 13.12.2004, 00:29
Архангельского я пользую еще со студенческой скамьи, и теперь использую для преподавания детям. ОЧЕНЬ помогает.
P.S. Новичок в форуме не означает новичка по жизни в программировании. ( специально для Pegas'а при всем уважении к занимаемой должности )

Автор: Vladimir13 14.12.2004, 18:42
про это хорошо написано все в том же Архангельском "Delphi 6" раздел 5.5.3 стр 359-363

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)