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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2010, 18:33   #1
начинающий1
Пользователь
 
Регистрация: 30.07.2009
Сообщений: 46
По умолчанию 2 формы(открытие закрытие)

Привет всем.
Форма 1 главная.
На форме1 нажимается кнопка и открывается форма 2, потом в форме 2 при нажатии на ней(форме2) кнопки нужно, чтобы форма 2 закрылась, нажалась программно кнопка на форме 1 и открылась форма 2.
Что-то не получается так сделать, в моем коде после нажатия кнопки на форме 2 пропадают две формы. Как сделать, чтобы форма 2 была видимой? Спасибо.
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
   // тут код
   Form2.Show;
   Form1.Visible:= False;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
  // тут код
  Form2.Close;

end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Form1.Visible := True;
  Form1.Button1.Click;
end;

procedure TForm2.FormDeactivate(Sender: TObject);
begin
  // тут код
end;
начинающий1 вне форума Ответить с цитированием
Старый 15.07.2010, 19:40   #2
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

а цель таких манипуляций? Т.е. вы закрываете 2 форму и сразу открываете?
dr.Chas вне форума Ответить с цитированием
Старый 15.07.2010, 19:51   #3
начинающий1
Пользователь
 
Регистрация: 30.07.2009
Сообщений: 46
По умолчанию

Цитата:
Сообщение от dr.Chas Посмотреть сообщение
а цель таких манипуляций? Т.е. вы закрываете 2 форму и сразу открываете?
в FormActivate 2 формы идут вычисления, которые зависят от введенных данных формы2, поэтому форму 2 надо переоткрывать, чтобы вступили в действия изменения.
начинающий1 вне форума Ответить с цитированием
Старый 15.07.2010, 20:07   #4
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Как бы ещё надо делать
Код:
Form2.Enabled:=True;

....
Form2.Enabled:=False;
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.07.2010, 20:14   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
_-Re@l-_
да не надо.
где ты это нашел?
Цитата:
в FormActivate 2 формы идут вычисления, которые зависят от введенных данных формы2, поэтому форму 2 надо переоткрывать, чтобы вступили в действия изменения.
хм, плохая планировка, может лучше сделать отдельную процедуру? и вызывать в нужных местах, ведь поидее это должно произойти(перерасчет) по закрытии или нажатии кнопки?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.07.2010, 20:19   #6
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
да не надо.
где ты это нашел?
Дык если не активировать форму, то как она будет работать?
Иль я чего-то не знаю?Кстати, Form2.Show это что значит?
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.07.2010, 20:19   #7
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

или таймер поставить - пусть каждую секунду вычисляется??
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 15.07.2010, 20:22   #8
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
или таймер поставить - пусть каждую секунду вычисляется??

Ну уж совсем то с ума не надо сходить...
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.07.2010, 20:25   #9
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
Ну уж совсем то с ума не надо сходить...

ну ты просто скажи как часто надо процедуру выполнять

а то вы как придумаете - то хоть стенкой об голову бей.....
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 15.07.2010, 20:27   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Дык если не активировать форму, то как она будет работать?
она изначально активна, лишь невидима.(я про вторую, если конечно сам это св-во не менял)
Цитата:
Кстати, Form2.Show это что значит?
показать форму2(считай по сути Form2.Visible:=true).
Цитата:
или таймер поставить - пусть каждую секунду вычисляется??
я думаю есть вполне определенные события на изменения, например ввод новых данных и тп.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
открытие-закрытие файла dante92 Помощь студентам 0 13.06.2010 13:17
Закрытие формы RIO Общие вопросы Delphi 2 27.08.2009 17:10
Открытие/Закрытие CD привода unicode Общие вопросы C/C++ 4 22.07.2009 15:17