Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2015, 15:10   #1
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию Форма - заставка - Delphi

Помогите решить вроде бы банальную задачу, но не нашел то что мне надо... Не могу разобраться как правильно последовательно организовать открытие и закрытие форм.
Мне нужно открыть форму - заставку с вводом пароля перед запуском приложения, только самое интересное что я не мог найти, чтоб была возможность закрыть эту форму не запуская приложение, на случай если пользователь передумал и не ввел пароль и на этой форме не будет стандартного крестика закрытия формы, а нажатие на Label.
Form1 - Заставка
Form2 - Форма Приложения
и Data_Module

Последний раз редактировалось S_007; 12.07.2015 в 15:16.
S_007 вне форума Ответить с цитированием
Старый 12.07.2015, 15:52   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

1 вариант:

В файле Project.dpr:
Код:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  If <не ввел пароль> then
     Exit;
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
2 вариант:

Во 2-м модуле:
Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm2 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
   If <не ввел пароль> then
      Exit;
   Show;
end;

end.
где <не ввел пароль> - какая-нибудь переменная типа boolean, обозначающая ввел/не ввел пароль.
Цитата:
не будет стандартного крестика закрытия формы
В окне Объекта Инспектора у формы есть свойство BorderIcons, подпункт biSystemMenu установить false.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 12.07.2015 в 16:01.
newerow1989 вне форума Ответить с цитированием
Старый 12.07.2015, 16:09   #3
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию

newerow1989, Спасибо! Очень доступно..! Счас попробую!
S_007 вне форума Ответить с цитированием
Старый 12.07.2015, 16:11   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Пожалуйста!
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 12.07.2015, 16:18   #5
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию

Извините за ламерство, В файле Project.dpr не видит переменную которая в первой форме как объявить?

чтоб вставить в эту строку
Код:
If <не ввел пароль> then Exit;
S_007 вне форума Ответить с цитированием
Старый 12.07.2015, 16:21   #6
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Вот образец:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  a:boolean;

implementation

{$R *.dfm}

end.
Код:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  a:=true;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 12.07.2015, 16:34   #7
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию

не получается((( не запускается вторая форма


program Project2;

Код:
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  If a = true then Exit;
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
Код в первой форме

Код:
//Если пользователь не ввел пароль или передумал запускать приложение
procedure TForm1.Button1Click(Sender: TObject);
begin
   a:=True;
   Form1.close;
end;

//Если пользователь ввел пароль и надо закрыть первую форму и открыть вторую
procedure TForm1.Button2Click(Sender: TObject);
begin
   a:=false;
   Form1.close;
end;
S_007 вне форума Ответить с цитированием
Старый 12.07.2015, 16:45   #8
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Вот готовая:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  a:boolean;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   a:=true;
   Form1.Close;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   a:=false;
   Form1.Close;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   Form1.ShowModal;
end;

end.
2-й модуль пустой (без изменений).
Код:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
  Application.Initialize;
  a:=true;
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm1, Form1);
  If a = true then Exit;
  Application.Run;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 12.07.2015 в 16:55. Причина: Готовый КОД!!!!!!!!!!!!!!!!!!!
newerow1989 вне форума Ответить с цитированием
Старый 12.07.2015, 17:00   #9
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию

newerow1989, Благодарю Сердечно! Гениально и просто оказывается! Все работает!
Можно пожалуйста еще вопрос, немного не в тему, у меня во второй форме в процедуре FormCreate происходит подключение ADO 8 таблиц, и форма (может из за этого) появляется на экран как бы клочками, можно как то победить пусть она там подключается хоть пол часа, но чтоб после всех подключений форма прорисовывалась на экран мгновенно?

Последний раз редактировалось S_007; 12.07.2015 в 17:03.
S_007 вне форума Ответить с цитированием
Старый 12.07.2015, 17:03   #10
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Пожалуйста!

Про таблицы я не могу сказать...
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заставка в программе bulldog5293 Общие вопросы Delphi 3 18.07.2010 09:07
Заставка... maxlake1 Помощь студентам 0 20.04.2010 20:51
Своеобразная заставка Arkady_Killer Фриланс 5 16.03.2010 19:20
Заставка Ark Общие вопросы Delphi 23 23.08.2009 01:10
Антиэкранная заставка Veiron Общие вопросы Delphi 8 24.05.2008 21:37