Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
47 / 12 / 4
Регистрация: 25.02.2010
Сообщений: 259
1

2 формы первая закрытая со второй работаем

04.03.2010, 00:17. Показов 3934. Ответов 34
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
хелп не могу розобраца мануала по этом практычески не нашол.
Мне нуно с Form1 перейти на Form2 з Form2 на Form...
но чтобы при переходи з Form1 на Form2 оно полностю закрывало Form1
если мы прописываем при кнопке
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "Unit1.h"
#include "Unit2.h"
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
Form1->Visible=false;
Form1->Enabled=false;
Application->CreateForm(__classid(TForm2), &Form2);
  Form2->ShowModal();
}
запускаемо нажымем на кнопку оно нам откроет Form 2 мы закроемо Form2 (хрестиком в правом углу) то у нас програма будет висеть в запущених потомучто Form1 мы не закрыли а токо зделали невидими и не активным
Как при открытии Form2 закрыть Form1???


и ещо вопрос у меня иногда выбивает такую ошыбку почему?

[Компоновщик Ошибка] Unresolved external '__fastcall TForm1::FormCreate(System::TObject *)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\123\UNIT1.OBJ
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2010, 00:17
Ответы с готовыми решениями:

Как заставить работать компоненты второй формы (пока инициализируеться первая форма)?
Всем Привет! :) Возникла вот одна задачка. при запуске программы (ФОРМА1 ) пока она создаеться...

При закрытии второй формы закрывается и первая
Доброго всем дня. Начал изучать с # и возникла одна проблемка, у меня есть 2 формы Form1 и Form2 на...

При открытии второй формы первая становится недоступна
При нажатии на кнопку "Телепорты" появляется вторая форма и на неё переходит фокус. В результате...

C# Запуск первой формы затем второй(чтобы первая закрылась автоматический)
Добрый день я ищу код что бы при запуске программы открывалась первая форма с картинкой, при...

34
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
04.03.2010, 09:54 2
Mrak19901124,
C++
1
2
Form1->Visible=true;
Form1->Enabled=true;
после ShowModal вернет вам вашу первую форму...
0
47 / 12 / 4
Регистрация: 25.02.2010
Сообщений: 259
04.03.2010, 13:44  [ТС] 3
мне не надо чтобы оно возвращало на главную форму мне надо чтобы при открытии второй формы оно полностю закрыло первую!!
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
04.03.2010, 16:37 4
Mrak19901124, ну вообще закрытие основной формы приведет к закрытию всего приложения... это вам что-то вроде авторизации надо, чтобы пользак что-то ввел, закрыл, появилось новое окно?
0
47 / 12 / 4
Регистрация: 25.02.2010
Сообщений: 259
04.03.2010, 16:43  [ТС] 5
"пользак что-то ввел, нажал на кнопку, появилось новое окно?"
да так но чтобы старое окно с вводом закрылось!
чтобы я мог в любой момент со 2 окна с 3 ...... закрыть полностю програму (хрестиком в правом углу)

просто смотрите если мы делаем так
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "Unit1.h"
#include "Unit2.h"
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
Form1->Visible=false;
Form1->Enabled=false;
Application->CreateForm(__classid(TForm2), &Form2);
  Form2->ShowModal();
}
то при закрытии крестиком(в правом верхнем углу) Form2 у нас форм1 будет активной и весеть в процесах!

Или зделать чтобы при закрытии форм2 оно закрывало всю програму в месте з форм 1!
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
04.03.2010, 17:10 6
Mrak19901124, а ты в обработчике второй формы на закрытие напиши так

C++
1
SendMessage(FindWindow("TForm1","Form1"),WM_CLOSE,0,0);
0
47 / 12 / 4
Регистрация: 25.02.2010
Сообщений: 259
04.03.2010, 17:14  [ТС] 7
не катит!!!!!! я также могу написать exit(1) результат один и тотже!!!





и ещо вопрос у меня иногда выбивает такую ошыбку почему?

[Компоновщик Ошибка] Unresolved external '__fastcall TForm1::FormCreate(System::TObject *)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\123\UNIT1.OBJ
0
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
04.03.2010, 17:18 8
C++
1
2
3
4
5
//---------------------------------------------------------------------------
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
  Application->Terminate(); 
}
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
04.03.2010, 17:19 9
Цитата Сообщение от Mrak19901124 Посмотреть сообщение
не катит!!!!!! я также могу написать exit(1) результат один и тотже!!!
Не может такого быть у меня закрывается программа и не висит в процессах
0
47 / 12 / 4
Регистрация: 25.02.2010
Сообщений: 259
04.03.2010, 17:24  [ТС] 10
если присвоить этот код
C++
1
SendMessage(FindWindow("TForm1","Form1"),WM_CLOSE,0,0);
кнопке какойто то да работает при нажатии на кнопку!!
Я также само могу присвоить код
C++
1
exit(1)
Sasha а ты попробуй создай 2 формы присвой им код на первой форме код кнопки
C++
1
2
3
4
Form1->Visible=false;
Form1->Enabled=false;
Application->CreateForm(__classid(TForm2), &Form2);
  Form2->ShowModal();
на второй форме код кнопки
C++
1
SendMessage(FindWindow("TForm1","Form1"),WM_CLOSE,0,0);
запусти проект нажми на первой форме на кнопку а на второй форме нажми на правый верхний угол окна (закрить програму) и посмотри..


или я просто чегото не понимаю?



а можно ли создать как при создании формы типа
void __fastcall TForm2::FormCreate(TObject *Sender)
{

}

но записать
void __fastcall TForm2::FormClose(TObject *Sender)
{

} ????
если да то как??
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
04.03.2010, 17:29 11
Если честно сказать то уменя вообще не создаётся вторая форма вот этим кодом

C++
1
2
3
Form1->Visible=false;
Form1->Enabled=false;
Application->CreateForm(__classid(TForm2), &Form2);
Добавлено через 57 секунд
А тебе обязательно таким образом создавать вторую форму
0
0 / 0 / 1
Регистрация: 02.12.2009
Сообщений: 13
04.03.2010, 17:30 12
Black Fregat же правильно написал, в чем проблема??
C#
1
2
3
4
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
  Application->Terminate();     
}
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
04.03.2010, 17:45 13
Малыш, просто создаётся вторая форма динамически и поэтому вознткли проблемы с написанием на закрытие этой формы
0
Покинул форум
3187 / 1366 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
04.03.2010, 17:56 14
Первая форма является главной, а вторая дочерней и поэтому при закрытии первой формы закрывается проект. При нажатии на Button нужно сделать Form2 главной. Но как это сделать при помощи кода я не знаю. Кажется главная форма - это MainForm.
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
04.03.2010, 17:58 15
Вместо вот этого
C++
1
2
3
Form1->Visible=false;
Form1->Enabled=false;
Application->CreateForm(__classid(TForm2), &Form2);
я пишу просто
C++
1
Form2->ShowModal();
И мой код который я приводил ранее он работает
0
47 / 12 / 4
Регистрация: 25.02.2010
Сообщений: 259
04.03.2010, 18:15  [ТС] 16
Малыш вот в чом проблема во второй форме выводит ошыбку в коде
C++
1
2
3
4
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
Application->Terminate();
}
ошыбка
[C++ Ошибка] Unit2.cpp(18): E2316 '_fastcall TForm2::FormClose(TObject *,TCloseAction &)' is not a member of 'TForm2'

Sasha
да он работает но он работает если его присвоить кнопке!!! а мне нада чтобы или при открытии второй формы закрывало первую или хотябы тчоб при закрытии второй формы оно закрывало и первую тоже!!!!!
НО ЗАКРЫТИЕ ПРОГРАМИ НЕ ЧЕРЗ КНОПКУ А ЧЕРЕЗ ХРЕСТИК В ВЕРХНЕМ ПРАВОМ УГЛУ ОКНА!!!
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
04.03.2010, 18:46 17
Цитата Сообщение от Sasha Посмотреть сообщение
Mrak19901124, а ты в обработчике второй формы на закрытие напиши так

C++
1
SendMessage(FindWindow("TForm1","Form1"),WM_CLOSE,0,0);
Причём тут кнопка я тебе когда это писал я имел ввиду что ты напишешь так

C++
1
2
3
4
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
SendMessage(FindWindow("TForm1","Form1"),WM_CLOSE,0,0);
}
0
0 / 0 / 1
Регистрация: 02.12.2009
Сообщений: 13
04.03.2010, 18:46 18
а что тебе мешает создать форму и просто её вызывать?

Form2->ShowModal();

следовательно можно будет воспользоваться ранее предложенным способом
0
47 / 12 / 4
Регистрация: 25.02.2010
Сообщений: 259
04.03.2010, 18:47  [ТС] 19
)) вопрос не в создании формы вопрос как закрыть форму2 всесте з формой1 з помощю крестика в углу???
0
0 / 0 / 1
Регистрация: 02.12.2009
Сообщений: 13
04.03.2010, 18:51 20
проверил пример который предложил Sasha работает.
именно на крестик
0
04.03.2010, 18:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2010, 18:51
Помогаю со студенческими работами здесь

Нужно, чтобы при закрытии второй формы первая опять становилась видимой
При нажатии на кнопку на форме1 (главная) открывается вторая форма а первая скрывается, нужно что...

Если первая цифра меньше второй,то вычислить их сумму,если первая цифра больше второй,то вычислить их разность
Дано двузначное число N.Если первая цифра меньше второй,то вычислить их сумму,если первая цифра...

Первая цифра меньше ли второй?
Если поможете буду очень благодарна...Заранее спасибо. Дано натуральное число. Вычислить, первая...

В зависимости от того введена ли открытая скобка или закрытая напечатать “открытая круглая скобка” или “закрытая фигурная скобка”
В зависимости от того введена ли открытая скобка или закрытая напечатать “открытая круглая скобка”...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru