Как закрыть форму c builder
Перейти к содержимому

Как закрыть форму c builder

  • автор:

Как закрыть форму c builder

Borland C++ Builder. (Embarcadero RAD Studio) Если да то читай ниже:

Как закрыть их обе?

Закрыть приложение?
Application->Terminate();

form2 вызываю так:
this->Visible = false;
Form2^ f2 = gcnew Form2();
f2->ShowDialog();

Вау. Ты динамически создал вторую форму f2 по готовой форме Form2 .

В билдере делаешь активной первую форму:
File->Use Unit.
выбираешь вторую форму.
Делаешь активной вторую форму и добавляешь первую.
Потом на кнопке в первой форме:
Form1->Visible=false;
Form2->Visible=true;
Во второй форме наоборот:
Form2->Visible=false;
Form1->Visible=true;

P.S. Есть форум для соотв. компиляторов. Для WinAPI есть тоже свой раздел.

Пишу на чистом С, плюсы спилил.

Как закрыть форму c builder

Группа: Участник
Сообщений: 22

Здравствуйте! На сей раз, я столкнулся с такой проблемой: приложение состоит из двух форм — Form1 и Form2. Форма Form2 перенесена в список доступных форм и вызывается из Form1 так:

f2=new TForm2(Application);
if (!f2) return;
f2->Show();

На форме Form2 имеется кнопка, которая должна закрывать данную форму (не крестик в правом верхнем углу). Если закрывать форму Form2, нажимая на крестик, то все нормально, а при нажатии на кнопку я получаю исключение:

Access violation at address 401146B3 in module vcl60.bpl. Read of address 00C9CDD8. Кто знает, как «заставить» форму Form2 открываться нормально при нажатии кнопки. подскажите. Заранее благодарен

Отправлено: 05.02.2007, 13:37

Группа: Участник
Сообщений: 575

Отправлено: 05.02.2007, 13:52

Группа: Модератор
Сообщений: 1583

Отправлено: 05.02.2007, 13:57

Группа: Участник
Сообщений: 22

Переменная f2 объявлена в разделе public класса TForm1. Закрывавает форму Form2 функция, которая есть в cpp-файле формы Form1. Вот ее код:

Отправлено: 05.02.2007, 14:41

Группа: Участник
Сообщений: 575

Отправлено: 05.02.2007, 14:53

Группа: Участник
Сообщений: 22

Отправлено: 05.02.2007, 15:07

Группа: Модератор
Сообщений: 1583

Отправлено: 05.02.2007, 15:13

Группа: Участник
Сообщений: 22

Отправлено: 05.02.2007, 15:22

Группа: Модератор
Сообщений: 1583

Возможно это тот случай когда «сразу delete» делать нельзя. Но учтите, что при закрытии крестиком ( ) вы не освобождаете память если у вас не стоит caFree и, возможно, не очищаете указатель f2.

Отправлено: 05.02.2007, 15:59

Группа: Участник
Сообщений: 115

все просто.
в начале ты проверяешь не создана ли форма, создаешь если нет и показываешь ее

CODE
if (Form2)
Form2=new TForm2(Form1);
>
Form2.Show;

вызывая delete Form2; ты освобождаешь память, НО
delete НЕ присваивает NULL переменной

а при закрытии формы не забудь!:

CODE
void __fastcall TForm2::OnDestroy(TObject *Sender)
Form2=NULL;
// а попробуй еще вот так :
// this=NULL;
// помоему это более правильно. или нет?
>
CODE
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
Action=caFree;
>
Отправлено: 05.02.2007, 16:10

Группа: Участник
Сообщений: 115

QUOTE
Переменная f2 объявлена в разделе public класса TForm1. Закрывавает форму Form2 функция, которая есть в cpp-файле формы Form1. Вот ее код:

определись ск-ко экземпляров TForm2 у тебя будет.
если 1 — — НЕ СОРИ!
ПЕРЕМЕННАЯ f2 — ЛИШНЯЯ.
в модуле Unit2.h (там где класс TForm2 объявлен) объявлена переменная Form2 — используй ее. а в Unit1.cpp вставь

#include «Unit2.h»
а призакрытии Form1 все прочие формы приложения (если не ошибаюсь) закрываются сами.
все прочее я написал выше.

Как закрыть форму

Author24 — интернет-сервис помощи студентам

Как закрыть форму с клавиатуры
Может подскажите какрыть форму с клавиатуры. С главной формы запускаю форму TfrProsmLiz, нужно ее.

Как закрыть форму с очисткой памяти?
У меня есть Form4. Там проходит тест. После того как тест пройден, например, эту форму закрыли.

Закрыть форму и открыть форму
Как закрыть не главную форму и запустить заново с ее начальным состоянием. Поясню. В Form2 у.

Закрыть модальную форму
Столкнулся со следующей проблемой. У меня в проекте есть главная форма, с которой я по кнопке.

Как отключить кнопку закрытия [X] формы?

Запись была обновлена

Чтобы сделать кнопку закрыть форму/программу достаточно прописать небольшой код. Так в FormCreate пропишите представленный ниже код:

HMENU MenuHandle = GetSystemMenu(Handle, false); if(MenuHandle) DeleteMenu(MenuHandle, SC_CLOSE, MF_BYCOMMAND);

Поделиться

Подготовил материал

Табаков Юрий

Программист

Автор и редактор проекта CuBook.PRO. Главная задача, которую я ставлю перед собой – донести до начинающих программистов удобочитаемый материал. Буду рад выслушать замечания и предложения. Не забываем ставить оценки и делать репосты =)

Минутка юмора

Программисты — они как женщины: и без них жить нельзя и с ними иногда тошно.

Предложить статью

Самое интересное

  • Log – натуральный логарифм
  • ShellExecute – открыть папку или приложение
  • Pow – возведение числа в степени
  • Chart – графики и диаграммы
  • StringGrid – таблица строк и столбцов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *