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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2009, 22:15   #1
prod87
Пользователь
 
Регистрация: 24.10.2009
Сообщений: 48
По умолчанию Как создать 2 окна

Помогите пожалуйста.
Такая ситуация:
нужно создать окно для логина, которое после нажатия кнопки(button1 например) будет закрываться и открываться новое окно с сомой программой. Зарание спасибо
prod87 вне форума Ответить с цитированием
Старый 24.10.2009, 22:37   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

File->New->Form
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.10.2009, 22:53   #3
Миша
Пользователь
 
Регистрация: 13.09.2007
Сообщений: 63
По умолчанию

Посмотри может етот код тебе подойдет?
Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var
name:String;
begin
if InputQuery('Рея','ла ла',name) then Button1.Caption:=name;
end;
Миша вне форума Ответить с цитированием
Старый 24.10.2009, 23:45   #4
Шульц
Форумчанин
 
Регистрация: 14.09.2008
Сообщений: 172
По умолчанию

Ставишь на форме (Где вводится логин) Таймер и в коде проджекта пишешь
Код:
program MSK;

uses
  Forms,
  Windows,
  sysutils,
  Unit1 in 'Unit1.pas' {Form1},
  Unit7 in 'Unit7.pas' {Form7};


{$R *.res}

begin
Application.Initialize;
  Form7:=TForm7.Create(Application);
  Form7.Show;
  Form7.Update;
  while Form7.Timer1.Enabled do
    Application.ProcessMessages;
   Application.CreateForm(TForm1, Form1);
   Form7.Hide;
   Form7.Close;
   Form7.Free;
  end;
 Application.Run;
end.
И в коде Батона пишешь следующее
Код:
if Edit1.Text='Пороль' then
 Timer1.Enabled:=False
else
 MessageDlg('Пароль не тот!',mtError,mbOKCancel,1);

If Timer1.Enabled=False then
 Close;
Шипулин А. В.
Шульц вне форума Ответить с цитированием
Старый 24.10.2009, 23:49   #5
prod87
Пользователь
 
Регистрация: 24.10.2009
Сообщений: 48
По умолчанию

Я сделал так:
form1.hide;
form2.show;

Вроде бы как то что мне надо Но все равно всем спасибо
prod87 вне форума Ответить с цитированием
Старый 25.10.2009, 00:30   #6
grenles
минимакс
Участник клуба
 
Аватар для grenles
 
Регистрация: 11.06.2008
Сообщений: 1,143
По умолчанию

Код:
 Боже, как смешно, глупо и смешно, Впрочем, все равно. А, я не буду вспоминать...
У Дельфи у любого проекта есть код. Обычно его можно посмотреть Project->View Source

Там пишем что-то вроде.
То есть непосредственно в файле МОЙПРОЕКТ.dpr
Код:

var
  MFormLogin : TFormLogin;
  MFormProgressBar : TFormProgressBar ;

....
begin
  Application.Initialize;
  MFormLogin := TFormLogin.Create(Application);

  try

    if MFormLogin.ShowModal<>mrCancel then begin

      MyUser  := MFormLogin.Edit_UserName.Text;
      UserPassw := MFormLogin.Edit_Passwd.Text;

   if  IsTrueVerify(MyUser,UserPass) then begin

      Application.Run;
   
      MFormProgressBar := TFormProgressBar.Create(Application);
      MFormProgressBar.Show
 
     Application.CreateForm(TForm1, Form1);
    MFormProgressBar .Progressbar1.Position :=      MFormProgressBar .Progressbar1.Position + 1
 ...
     Application.CreateForm(TForm100, Form100);
    MFormProgressBar .Progressbar1.Position :=      MFormProgressBar .Progressbar1.Position + 1
....
     Application.CreateForm(TForm1000, Form1000);
     Application.CreateForm(TForm1, Form1);
    MFormProgressBar .Progressbar1.Position :=      MFormProgressBar .Progressbar1.Position + 1
 
 end else begin 
      Application.MessageBox('Не ваш сегодня день.....','');
end
 end else begin 
      Application.MessageBox('Ну и не обидно.....','');
end

 finalle
     MFormLogin.Free;
     MFormPosition.Free;
 end;
    end;
Смысл в том, что до запуска приложения определяет и проверятся пароль, а потом уже при корректной аутентификации запускается все приложение. Мне кажется так прикольннее (хотя решение не совсем мое...
При этом отображаем процент загрузки приложения через форму MFormprogressBar где как душе угодно можно разместить процесс загрузки.
В моем случае - это чисто бегунок от 1... до 1000 по число загружаемых форм и все... Зато пользователь видит, что прога грузится и пароль сработал
и это пройдет...

Последний раз редактировалось grenles; 25.10.2009 в 00:34.
grenles вне форума Ответить с цитированием
Старый 25.10.2009, 01:46   #7
Шульц
Форумчанин
 
Регистрация: 14.09.2008
Сообщений: 172
По умолчанию

Цитата:
Сообщение от prod87 Посмотреть сообщение
Я сделал так:
form1.hide;
form2.show;

Вроде бы как то что мне надо Но все равно всем спасибо
Ну это ты как то не совсем правильно сделал. Форма с логином не освобождает память, и тупо там сидит и жрет ее
Если так делаешь, то ведь когда ты закроешь все видимые формы в конце, приложение не закроется, так как главная форма (Форм1) не закроется. Закрывай ее тогда при закрытии второй.
ТЫ ее прячешь, не закрываешь.
Шипулин А. В.
Шульц вне форума Ответить с цитированием
Старый 25.10.2009, 11:43   #8
Gapro
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 256
По умолчанию

On Create Form2.ShowModal, затем через if проверка пароля и если правильно то close и работай в главном окне
Gapro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов окна сохранить как mephist Microsoft Office Excel 7 23.07.2009 16:00
Окна как вкладки neo7777 Общие вопросы Delphi 8 07.04.2008 11:44
Размер окна в зависимости от размера окна Reverent JavaScript, Ajax 1 02.02.2008 15:49
закрыть все дочерни окна, кроме главного окна Worms Общие вопросы Delphi 2 03.12.2007 22:18
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? dimonchuk Общие вопросы Delphi 1 11.08.2007 12:13