Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Пароль на строку меню  (Прочитано 13546 раз)
0 Пользователей и 1 Гость смотрят эту тему.
fredi5
Участник

ru
Offline Offline
Пол: Мужской

« : 17-03-2010 15:51 » 

Здравствуйте.
Как установить в определенной строке меню пароль на доступ к подпрограмме? (точнее пароль на
выполнение этого пункта меню).
Много прочитал, но ничего похожего не нашел.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 17-03-2010 19:28 » 

fredi5, У каждого меню должен сушествовать обработчик. А по большому счету. Пользователя будет очень сильно раздражать, если каждый раз он будет вводить пароль. Лучше поставить авторизацию при запуске программы. И в зависимости, с каким логином зашел пользователь, отключать или включать доступные пункты меню.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #2 : 19-03-2010 12:04 » new

Finch, это верно только если за программой сидит один пользователь. на производстве зачастую комп всего один на весь цех, прога запущена вообще под левым логином, а пользователи (сиречь, работники цеха) подбегают на минуту чтобы вбить какую-нить муру (отчёт, даннные с оборудования и пр.). и вот тут нужна индивидуальная авторизация. (это я к примеру).


Записан

PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #3 : 19-03-2010 12:05 » 

fredi5, ну так по нажатию на пункт меню, что-то же происходит? Что мешает перед этим действием запросить пароль?
Записан

Удачного всем кодинга! -=x[PooH]x=-
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #4 : 19-03-2010 12:10 » 

x77, Ну можно применить принцип программы sudo. Она помнит пароль в течении 15 минут. Потом благополучно забывает. При каждом телодвижении вбивать пароль. Легче застрелится.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #5 : 19-03-2010 12:12 » 

Все зависит от пункта меню... Может там так пункт "Увольться по собственному желанию" =)
Записан

Удачного всем кодинга! -=x[PooH]x=-
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #6 : 19-03-2010 13:26 » 

x77, Ну можно применить принцип программы sudo. Она помнит пароль в течении 15 минут. Потом благополучно забывает. При каждом телодвижении вбивать пароль. Легче застрелится.

тут вопрос в другом: нужна идентификация или авторизация пользователя. если идентификация - то это просто. по баркоду на бейдже сканером штрих-кодов, например. а если авторизация - то... там есть варианты. в идеале - это Single Sign On, т.е. юзер авторизуется где-то один раз, и дальше он только говорит проге, что это он (передаёт свои "credentials", тем же сканером штрих кодов, или по смарт-карте, или по SAM-модулю). поскольку на практике идеал недостижим Ага и редкая контора даст время на разработку внятного key-management-а), то проще просто упростить ввод логина и пароля. секьюрным решение не будет, но ввод логина и пароля руками 50 раз в день - само по себе не самое секьюрное решение.
Записан

fredi5
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 19-03-2010 22:57 » 

Это набор таблиц, доступных в сети нашего предприятия. Пароль нужен для редакции таблиц, одним пользователем, раз в пол-года.
В принципе вопрос проверки пароля решен, но дальше я уперся в "бяку".
Создается дополнительная форма (Form4) в режиме автосоздания(форма простенькая. места занимает мало). Там-же производится идентификация пароля. И в случае положительного результата нужно  переменной  (var abc;) на  главной форме присвоить значание (ххх).
Это "прописка" дополнительной формы в главной.
Код:
unit Unit1;
......
.....
implementation
uses Unit3, Unit2, Unit4 ;
{$R *.dfm}
Это обработка пароля и переход на метку в главной форме.
Код:
unit Unit4;
.....
.....
procedure TForm4.SpeedButton1Click(Sender: TObject);
begin
       pas2 :=  Edit1.Text   ;
     if pas1 = pas2 then  
     Form1.abc := xxx
         else
  ShowMessage('хххх');
end;
Вроде все правильно. Но формы друг друга " не видят".
Код:
[Ошибка] Unit4.pas(25): Undeclared identifier: 'TForm1'
[Ошибка] Unit4.pas(40): Label expected
[Фатальная Ошибка] Unit1.pas(78): Could not compile used unit 'Unit4.pas'
Что  я не так сделал?
« Последнее редактирование: 20-03-2010 19:51 от fredi5 » Записан
zubr
Гость
« Ответ #8 : 20-03-2010 07:25 » 

Цитата
The label declaration, marked statement, and goto statement must belong to the same block. (See Blocks and scope.) Hence it is not possible to jump into or out of a procedure or function. Do not mark more than one statement in a block with the same label.
Delphi Help

Если тебе нужно выполнить какой то код из другой формы, то в классе той формы создай public метод с нужным кодом и вызывай его Form1.MyMetod
Записан
fredi5
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 20-03-2010 19:59 » 

Я понимаю, что отнимаю драгоценное время, но можно подробнее ...
В Delphi7 есть готовое окно ввода пароля на дополнительной форме.
Как это там действует ?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 20-03-2010 20:09 » 

Честно говоря, лениво было всю тему читать - ограничился первым постом.

У любого пункта меню есть событие onClick - в нем можно показать другой модальный диалог, в котором попросить ввести пароль, а по результатам его работы решить, что делать дальше.
Программирую на BCB6, что примерно соответствует D7. Использую onClick меню для динамического созданию списка элементов меню.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
fredi5
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 20-03-2010 20:37 » 

Вроде сам разобрался. Тему можно не продолжать.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 20-03-2010 20:40 » 

fredi5, поздравляю. Я бы тоже сам справился.
Кстати, мне чаще всего тоже не отвечают — потому как не задаю простых вопросов Улыбаюсь
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
glGizma
Гость
« Ответ #13 : 14-04-2010 07:29 » 

Если я правильно понял, то:
Код:
procedure TForm2.JvXPButton1Click(Sender: TObject);
begin
if Form2.ModalResult=mrOk then
   if Edit1.Text='123' then
      begin
         Form3.Show; //показать главное окно
         Exit; //выйти из этой процедуры
      end;
Form2.ModalResult:=mrOk; //результат работы этого окна
Close; //закрыть это окно
end;
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines