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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2011, 21:50   #1
Sinapsik
Пользователь
 
Аватар для Sinapsik
 
Регистрация: 29.03.2011
Сообщений: 28
По умолчанию многооконность, проблема с главной формой

то ли лыжи не едут,то ли я ... перенапрягся о_О
короче вопрос из разряда "погугли",но что-то я не могу конкретно сформулировать...попробую тут описать...
Вообщем так.Есть окно авторизации и в зависимости от введенного в него пары логин/пароль открывается та или иная форма,после чего форму авторизации нужно закрыть.
Вопрос:эм...вот тут и не знаю как бы сформулировать ))) короче,как Дэлфи "объяснить" что при открытии второй формы (формы человека под которым зашли) надо сменить эту форму на главную,а форму с авторизацией закрыть?

Да да да,вопрос топорный и плохо объяснен,но думаю поймете ))
Sinapsik вне форума Ответить с цитированием
Старый 20.06.2011, 22:10   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Предположим, что form1 - главная форма, куда вводим логин-пароль, а form2 - форма, которая открывается.

Тогда, если после ввода логина и пароля в главной форме, нажать на кнопку, которая располагается на этой форме, то это будет выглядеть так (примерно)

Код:


form1.button1click;
begin
{Мы ввели логин и пароль в главной форме}
fom2:=Tform2.create(self);
form2.show;
form1.hide;
end;
Полезная ссылка: http://www.delphi-manual.ru/lesson8.php
Вадим Мошев вне форума Ответить с цитированием
Старый 20.06.2011, 22:14   #3
Sinapsik
Пользователь
 
Аватар для Sinapsik
 
Регистрация: 29.03.2011
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Код:
form1.button1click;
begin
{Мы ввели логин и пароль в главной форме}
fom2:=Tform2.create(self);
form2.show;
form1.hide;
end;
Полезная ссылка: http://www.delphi-manual.ru/lesson8.php
вы не поняли
1:в зависимости от пары логин/пароль может открываться и форм2,и форм 3,и формN
2:форму с авторизацией (форм1) надо закрыть
Sinapsik вне форума Ответить с цитированием
Старый 20.06.2011, 22:24   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Sinapsik Посмотреть сообщение
вы не поняли
1:в зависимости от пары логин/пароль может открываться и форм2,и форм 3,и формN
2:форму с авторизацией (форм1) надо закрыть
1. Ну я считаю, что лучше использовать ОДНУ ФОРМУ, на которой отображать различную информацию, в зависимости от того, какой пользователь вошёл. А что если пользователей 10000000000000000. Столько форм будете хранить и показывать? Памяти не жалко?
2.
Код:
форму с авторизацией (форм1) надо закрыть
Мне кажется, что если вы закроете эту форму, которая является главной формой проекта, то закроется и вся программа. Эту форму надо именно прятать
Код:
form1.hide; // а не form1.close
ИМХО..
Вадим Мошев вне форума Ответить с цитированием
Старый 20.06.2011, 22:26   #5
Silver_S
Форумчанин
 
Регистрация: 14.03.2011
Сообщений: 104
По умолчанию

Код:
var
  s: String;
begin
  Application.Initialize;
  LoginForm:=TLoginForm.Create(Application);
  LoginForm.ShowModal;
  s:=LoginForm.Name; //получаем данные о логине
  LoginForm.Free; //форма уничтожается
  if s='Vasya' then
    Application.CreateForm(TVasyaForm, VasyaForm) //как главная - форма васи
  else
    Application.CreateForm(TPetyaForm, PetyaForm); //как главная - форма пети
  Application.Run;
end.
Я тоже считаю, что лучше использовать одну главную форму
Silver_S вне форума Ответить с цитированием
Старый 20.06.2011, 22:30   #6
Sinapsik
Пользователь
 
Аватар для Sinapsik
 
Регистрация: 29.03.2011
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
1. Ну я считаю, что лучше использовать ОДНУ ФОРМУ, на которой отображать различную информацию, в зависимости от того, какой пользователь вошёл. А что если пользователей 10000000000000000. Столько форм будете хранить и показывать? Памяти не жалко?
Ну,тут не совсем по кол-ву пользователей,а скорей по разности привилегий.А на счет отображать все на одной форме,то опять таки,в зависимости от "должности" вошедшего отображаются разные компоненты,не охота заморачиваться с созданием компонентов и их размещением
Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
2.
Мне кажется, что если вы закроете эту форму, которая является главной формой проекта, то закроется и вся программа. Эту форму надо именно прятать
Код:
form1.hide; // а не form1.close
Вот в этом и проблема Видимо плохо все же описал суть,нужно что бы следующая форма,открывшаяся после формы-авторизации стала главной как-то так
Sinapsik вне форума Ответить с цитированием
Старый 20.06.2011, 22:32   #7
Sinapsik
Пользователь
 
Аватар для Sinapsik
 
Регистрация: 29.03.2011
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Silver_S Посмотреть сообщение
Код:
var
  s: String;
begin
  Application.Initialize;
  LoginForm:=TLoginForm.Create(Application);
  LoginForm.ShowModal;
  s:=LoginForm.Name; //получаем данные о логине
  LoginForm.Free; //форма уничтожается
  if s='Vasya' then
    Application.CreateForm(TVasyaForm, VasyaForm) //как главная - форма васи
  else
    Application.CreateForm(TPetyaForm, PetyaForm); //как главная - форма пети
  Application.Run;
end.
Я тоже считаю, что лучше использовать одну главную форму
благодарю,то что надо
Sinapsik вне форума Ответить с цитированием
Старый 20.06.2011, 23:08   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от Sinapsik Посмотреть сообщение
Ну,тут не совсем по кол-ву пользователей,а скорей по разности привилегий.А на счет отображать все на одной форме,то опять таки,в зависимости от "должности" вошедшего отображаются разные компоненты,не охота заморачиваться с созданием компонентов и их размещением
Сделай на форме PageControl, кучу TabSheet и отображай нужный, остальные TabVisible:=False
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 20.06.2011, 23:22   #9
Sinapsik
Пользователь
 
Аватар для Sinapsik
 
Регистрация: 29.03.2011
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Сделай на форме PageControl, кучу TabSheet и отображай нужный, остальные TabVisible:=False
как вариант
что-то не подумал об этом...
Sinapsik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многооконность в играх Pyton Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 12.06.2011 18:58
Проблема с формой Koshir Microsoft Office Excel 1 27.05.2011 15:56
Проблема закрытия проекта вместе с главной формой. BlackWhyT Общие вопросы Delphi 2 19.12.2010 00:36
Проблема с формой rdama PHP 1 21.07.2010 09:34
Запуск диалога ввести пароль перед главной формой MDIForm Comatoz Общие вопросы Delphi 0 07.06.2009 18:20