Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.03.2009, 18:01
qwwwq qwwwq вне форума
Прохожий
 
Регистрация: 12.01.2009
Сообщения: 47
Репутация: 10
По умолчанию Главная форма

Не могу сделать так что при нажатии на кнопку форма, на кторой эта кнока, закрылась и открылась другая форма.
Получилось только вот так:
По нажатию кнопки
Код:
Form1.Show;
Form2.Hide
но в этом случае тогда программа пропадает с нижней панели виндовса.
Ответить с цитированием
  #2  
Старый 14.03.2009, 18:47
Maksas Maksas вне форума
Прохожий
 
Регистрация: 14.03.2009
Сообщения: 3
Репутация: 10
По умолчанию

Если правильно понял то она пропадает после того как ты закрываешь вторую форму, надо просто вернуть видимость первой в свойствах второй формы "OnClose" пиши form1.Show и все
Ответить с цитированием
  #3  
Старый 14.03.2009, 19:17
qwwwq qwwwq вне форума
Прохожий
 
Регистрация: 12.01.2009
Сообщения: 47
Репутация: 10
По умолчанию

Не. Вот смотри есть форма1, я нажимаю на кнопку и у меня пропадает форма1 и высвечивается форма2. Пока вроде все нормально, но вот в тот момент когда у меня закрывается первая форма а вторая открывается программа пропадает с панели внизу у виндовса где пуск. А программа то работет себе как и надо, но вот то что его нет в панели это как то напрегает
Ответить с цитированием
  #4  
Старый 14.03.2009, 20:16
qwwwq qwwwq вне форума
Прохожий
 
Регистрация: 12.01.2009
Сообщения: 47
Репутация: 10
По умолчанию

Либо просто подскажите как правильно сделать чтобы при нажатии кнопи форма на которой эта кнопка закрылась а другая открылась?
Ответить с цитированием
  #5  
Старый 14.03.2009, 23:26
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Вам надо не скрывать главную форму, а минимизировать ее, тогда ничего не пропадет, т.е. будет где-то так:
Цитата:
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.Minimize;
Form2.Show;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
Application.Restore;
end;
Ответить с цитированием
  #6  
Старый 15.03.2009, 02:46
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

на первой форме:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.Show;
  Form1.Hide;
end;
на второй форме:
Код:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Form1.Show;
end;
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #7  
Старый 15.03.2009, 11:16
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Вы несколько неправы, применение метода Hide к главной форме приложения приведет к исчезновению значка приложения в таскбаре. Именно эту проблему указывал автор. Я предлагаю не скрывать, а минимизировать тогда эффект будет именно тот, что хотел автор.
Ответить с цитированием
  #8  
Старый 15.03.2009, 12:06
qwwwq qwwwq вне форума
Прохожий
 
Регистрация: 12.01.2009
Сообщения: 47
Репутация: 10
По умолчанию

Ну тогда получается что Form1 просто минимизируется и к нему есть доступ, а мне надо чтобы к нему не было доступа. Т.е. как при авторизации, запускается программа она просит ввести логин и пароль и если правильно то отрывает саму прогу а форма куда нужно было ввести логин и пароль исчезает.
Ответить с цитированием
  #9  
Старый 15.03.2009, 12:50
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Вот с этого и надо было начинать. Когда идет речь о логине то делать можно так, запустить приложение, при создании формы вызвать модально форму логина в случае неудачи завершить программу иначе закрыть модальное окно и автоматически перейдет управление главному окну приложения. Минус в этом решении, то что при закрытии приложения из окна логина у вас мелькнет главное окно.
Ответить с цитированием
  #10  
Старый 15.03.2009, 14:05
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Цитата:
Сообщение от Страдалецъ
Вы несколько неправы, применение метода Hide к главной форме приложения приведет к исчезновению значка приложения в таскбаре. Именно эту проблему указывал автор. Я предлагаю не скрывать, а минимизировать тогда эффект будет именно тот, что хотел автор.
Мой код вполне удовлетворяет требованию автора. Я сам проверял, ничего из таскбара не исчезает. А сворачивать окно формы - это метод, кот. обычно называют "через одно место". Извиняюсь, если был слишком груб.
Смысл моего кода в том, что СНАЧАЛА мы ПОКАЗЫВАЕМ вторую форму, а ПОТОМ мы СКРАВАЕМ первую, тогда ничего из таскбара не исчезает.
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #11  
Старый 15.03.2009, 15:19
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Говорите не исчезает?
А какая ОС и какой Дельфи у вас? На висте с D2009 ваш код приводит к исчезновению в таскбаре заголовка формы.
Ответить с цитированием
  #12  
Старый 15.03.2009, 15:36
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

WinXP / Delphi 7
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #13  
Старый 15.03.2009, 18:09
qwwwq qwwwq вне форума
Прохожий
 
Регистрация: 12.01.2009
Сообщения: 47
Репутация: 10
По умолчанию

Delphi 2007 - Windows xp и Vista. и там и там исчезает
Ответить с цитированием
  #14  
Старый 15.03.2009, 20:02
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Т.е. можно сделать вывод, что начиная с D2007 поведение главного окна при его скрытии изменилось.
Ответить с цитированием
  #15  
Старый 18.03.2009, 17:07
qwwwq qwwwq вне форума
Прохожий
 
Регистрация: 12.01.2009
Сообщения: 47
Репутация: 10
По умолчанию

За что отвечает?
Код:
Application.MainFormOnTaskbar := true; 
Когда его закоментировал все стало нормально работать
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:09.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025