Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 42
1

Пока кнопка не нажата выполнять действия

21.05.2016, 18:21. Просмотров 957. Ответов 10
Метки нет (Все метки)

Хочу реализовать скрытие меню в программе, пока не нажата кнопка авторизации. Понимаю, что нужно прописать через while, то есть пока не нажата кнопка входа скрывать меню. Не могу сообразить как прописать: пока не нажата кнопка. Подскажите пожалуйста как, совсем запуталась
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2016, 18:21
Ответы с готовыми решениями:

пока нажата кнопка. !
Имеются допустим 2 кнопки на каждую из них при нажатии выполняется действие . Проблема заключается...

Действие пока нажата кнопка
Всем привет, у меня такой вот вопрос. Как сделать проверку на нажатую кнопку на клавиатуре?...

Сделать кнопку "Далее" некликабельной пока не нажата кнопка "Старт"
Подскажите пожалуйста)

Движение пока нажата клавиша Delphi 7
Подскажите пожалуста как сделать в delphi 7 движение объекта пока нажата клавиша (Например нажал...

10
47 / 47 / 34
Регистрация: 16.02.2016
Сообщений: 277
21.05.2016, 18:41 2
если кнопка доступна для нажатия, то ее можно сколько угодно раз нажать и без авторизации;
может лучше меню показать, когда уже прошла авторизация?
0
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 42
21.05.2016, 18:45  [ТС] 3
Хочу сделать так чтобы пока пользователь не нажал кнопку, майнменю было скрыто. Естественно еще будет разграничение пользователей
0
Изображения
 
492 / 395 / 259
Регистрация: 05.04.2013
Сообщений: 1,755
21.05.2016, 18:48 4
lolita322, ?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    file1: TMenuItem;
    Open1: TMenuItem;
    Exit1: TMenuItem;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
File1.Visible := true;
end;
0
47 / 47 / 34
Регистрация: 16.02.2016
Сообщений: 277
21.05.2016, 18:55 5
Цитата Сообщение от lolita322 Посмотреть сообщение
Хочу сделать так чтобы пока пользователь не нажал кнопку, майнменю было скрыто.
просто можно будет нажать на кнопку без ввода логина и пароля или фиктивные ввести данные и меню появится?
0
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 42
21.05.2016, 19:55  [ТС] 6
Цитата Сообщение от VyachNik Посмотреть сообщение
просто можно будет нажать на кнопку без ввода логина и пароля или фиктивные ввести данные и меню появится?
При вводе фиктивных данных он будет ругаться и говорить, что их в таблице не существует. А так получается пока я не ввожу данные у меня ничего не видно, как только ввела данные определенного пользователя, к примеру секретарь, то он показывает пункты меню, которые ему доступны, а если пользователь-директор, то ему все открыто
0
47 / 47 / 34
Регистрация: 16.02.2016
Сообщений: 277
21.05.2016, 21:04 7
Цитата Сообщение от lolita322 Посмотреть сообщение
При вводе фиктивных данных он будет ругаться и говорить, что их в таблице не существует.
ну так я и говорю, что момент появления меню должен происходить уже после авторизации;
а не проще сделать так, чтобы окно авторизации запускалось перед запуском приложения? клиент авторизовался и появилась главная форма с нужным меню, если нет авторизации, то и приложение не запускается, как то так
0
47 / 47 / 34
Регистрация: 16.02.2016
Сообщений: 277
21.05.2016, 22:17 8
вот накидал простенький вариант проекта, то что имел ввиду:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//код проекта
program Project1;
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
begin
  Form2 := TForm2.Create(nil);
  Form2.ShowModal;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Form2.Hide;
  Form2.Free;
  Application.Run;
end.
и две формы:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus;
type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    MainMenu2: TMainMenu;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  bl_user, bl_admin: boolean;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
  if bl_admin then
    Form1.Menu := Form1.MainMenu1;
  if bl_user then
    Form1.Menu := Form1.MainMenu2;
end;
end.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
unit Unit2;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm2 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
  if (Edit1.Text = 'admin') and (Edit2.Text ='admin') then
    begin
      Unit1.bl_admin := true;
      Unit1.bl_user := false;
      Form2.Close;
    end;
  if (Edit1.Text = 'user') and (Edit2.Text = 'user') then
    begin
      Unit1.bl_user := true;
      Unit1.bl_admin := false;
      Form2.Close;
    end;
end;
end.
результат работы программы:
0
Миниатюры
Пока кнопка не нажата выполнять действия   Пока кнопка не нажата выполнять действия   Пока кнопка не нажата выполнять действия  

Пока кнопка не нажата выполнять действия   Пока кнопка не нажата выполнять действия  
47 / 47 / 34
Регистрация: 16.02.2016
Сообщений: 277
21.05.2016, 22:30 9
код проекта подправил (если окно закрывается без авторизации, то приложение закрываем):
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
program Project1;
 
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};
 
{$R *.res}
 
begin
  Form2 := TForm2.Create(nil);
  Form2.ShowModal;
  if (not Unit1.bl_admin) or (not Unit1.bl_user) then
    Application.Terminate;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Form2.Hide;
  Form2.Free;
  Application.Run;
end.
0
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 42
22.05.2016, 10:17  [ТС] 10
Цитата Сообщение от VyachNik Посмотреть сообщение
вот накидал простенький вариант проекта, то что имел ввиду:
спасибо большое!!
0
47 / 47 / 34
Регистрация: 16.02.2016
Сообщений: 277
22.05.2016, 12:46 11
Цитата Сообщение от lolita322 Посмотреть сообщение
спасибо большое!!
пжл
Цитата Сообщение от VyachNik Посмотреть сообщение
if (not Unit1.bl_admin) or (not Unit1.bl_user) then Application.Terminate;
с логикой немножко напутал, 13-14 строчки кода проекта, вот так надо:
Delphi
1
2
  if not ((Unit1.bl_admin) or (Unit1.bl_user)) then
    Application.Terminate;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2016, 12:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Нажата ли кнопка ...?
Всем привет. У меня вот такой вопрос: допустим есть две формы, на первой две кнопки которые...

Узнать нажата ли кнопка
Доброго времени суток.. Подскажите, пожалуйста, как узнать нажал ли пользователь кнопку btn6 или...

как узнать нажата ли кнопка
как сделать так чтобы при нажатии на Button1 выполнялись операторы записанные в Button2 ? или как...

Если кнопка была нажата то
Здравствуйте! Я завис здесь на одном моменте, и прошу помочь :) Впрочем есть 4 кнопки (1,2,3,4)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.