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

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

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

Хочу реализовать скрытие меню в программе, пока не нажата кнопка авторизации. Понимаю, что нужно прописать через while, то есть пока не нажата кнопка входа скрывать меню. Не могу сообразить как прописать: пока не нажата кнопка. Подскажите пожалуйста как, совсем запуталась
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2016, 18:21
Ответы с готовыми решениями:

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

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

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

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

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

10
VyachNik
47 / 47 / 34
Регистрация: 16.02.2016
Сообщений: 277
21.05.2016, 18:41 2
если кнопка доступна для нажатия, то ее можно сколько угодно раз нажать и без авторизации;
может лучше меню показать, когда уже прошла авторизация?
0
lolita322
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 42
21.05.2016, 18:45  [ТС] 3
Хочу сделать так чтобы пока пользователь не нажал кнопку, майнменю было скрыто. Естественно еще будет разграничение пользователей
0
Изображения
 
AHBAR
275 / 262 / 181
Регистрация: 05.04.2013
Сообщений: 1,212
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
21.05.2016, 18:48
VyachNik
47 / 47 / 34
Регистрация: 16.02.2016
Сообщений: 277
21.05.2016, 18:55 5
Цитата Сообщение от lolita322 Посмотреть сообщение
Хочу сделать так чтобы пока пользователь не нажал кнопку, майнменю было скрыто.
просто можно будет нажать на кнопку без ввода логина и пароля или фиктивные ввести данные и меню появится?
0
lolita322
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 42
21.05.2016, 19:55  [ТС] 6
Цитата Сообщение от VyachNik Посмотреть сообщение
просто можно будет нажать на кнопку без ввода логина и пароля или фиктивные ввести данные и меню появится?
При вводе фиктивных данных он будет ругаться и говорить, что их в таблице не существует. А так получается пока я не ввожу данные у меня ничего не видно, как только ввела данные определенного пользователя, к примеру секретарь, то он показывает пункты меню, которые ему доступны, а если пользователь-директор, то ему все открыто
0
VyachNik
47 / 47 / 34
Регистрация: 16.02.2016
Сообщений: 277
21.05.2016, 21:04 7
Цитата Сообщение от lolita322 Посмотреть сообщение
При вводе фиктивных данных он будет ругаться и говорить, что их в таблице не существует.
ну так я и говорю, что момент появления меню должен происходить уже после авторизации;
а не проще сделать так, чтобы окно авторизации запускалось перед запуском приложения? клиент авторизовался и появилась главная форма с нужным меню, если нет авторизации, то и приложение не запускается, как то так
0
VyachNik
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
Миниатюры
Пока кнопка не нажата выполнять действия   Пока кнопка не нажата выполнять действия   Пока кнопка не нажата выполнять действия  

Пока кнопка не нажата выполнять действия   Пока кнопка не нажата выполнять действия  
VyachNik
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
lolita322
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 42
22.05.2016, 10:17  [ТС] 10
Цитата Сообщение от VyachNik Посмотреть сообщение
вот накидал простенький вариант проекта, то что имел ввиду:
спасибо большое!!
0
VyachNik
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
22.05.2016, 12:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2016, 12:46

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

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

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


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

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

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