Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
5 / 5 / 2
Регистрация: 04.07.2010
Сообщений: 200

Создание и удаление форм

03.12.2011, 00:40. Показов 3308. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нашел темку эту https://www.cyberforum.ru/cpp-... 57473.html прочитал неработает этот код
C++
1
2
3
4
Form2=new TForm2(this);
// программа компилируется но ругается что то с адресом при использованиии
Form2->OnClose=CloseChildForm; // ругается компилятор на CloseChildForm
Form2->Show();
работает только если фрорма находится в auto-create form
что не так?
так что использую
C++
1
2
Application->CreateForm(__classid(TForm3), &Form3);
Form3->ShowModal();
как удалить созданную форму?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.12.2011, 00:40
Ответы с готовыми решениями:

Удаление ячеек печатных форм
Ребят есть такой вопрос, как мне программно удалить ячейки. Т.е. допустим есть счет, и поля сумма без скидки и скидка, каким методом их...

Манифест, правильное удаление и добавление форм
В актуальном проэкте бота я пытаюсь изменить файлы - удалить не актуальные биржи, - в обозревателе решений удалил вложеные проэкты (или...

Удаление из форм ссылок на удаленные поля таблиц
Привет. Было поле в таблице и в форме. --из таблицы удалил . --и из формы тоже. --но когда открываешь форму он...

11
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
03.12.2011, 00:51
Прочитай про динамическое создание объектов подробней.
C++
1
2
3
TForm2 *MyForm = new TForm2(Application);
MyForm->ShowModal();
delete MyForm;
1
5 / 5 / 2
Регистрация: 04.07.2010
Сообщений: 200
03.12.2011, 01:09  [ТС]
Форма2 должна быть Available ?(так как если в auto-create forms смысла не имеет) если да то появляется сообщение
я тут посмотрел все работает если делать на новом проекте, значит дело в самом проекте.может знаете где может быть проблема(в какой части проекта)?
Миниатюры
Создание и удаление форм  
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
03.12.2011, 03:18
Цитата Сообщение от evil0o Посмотреть сообщение
может знаете где может быть проблема(в какой части проекта)?
Извините, сегодня телепатический дар работает только на определение наличия камней в почках у автора темы. Подождите день-другой или напишите фрагменты кода, где используете операции с динамической памятью.

Далее, динамически объекты от TMyClass (в данном случае от TForm2) не должны быть обработаны через Application->CreateForm(...), но должны быть где-то описаны. Поэтому не думайте о вашей форме, как об окне, а как об обычном динамически создаваемом объекте (компоненте).
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.12.2011, 03:54
В файле Project.cpp (не Unit1.cpp !) :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//...
USEFORM("Unit2.cpp", Form2);
//---------------------------------------------------------------------------
#include "Unit2.h"
//...
WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR cmdLine, int) // додано cmdLine
{
  TForm2 *MyForm;
  MyForm = new TForm2(NULL);
  MyForm->ShowModal();
//...
// Application->CreateForm(__classid(TForm2), &Form2); //не Available 
//...
  delete MyForm;
  MyForm = NULL;
  return 0;
}
Хотя, можно и в Unit1.h, например.

Access Violation получается, вероятнее всего, вследствие того, что в программе есть обращение к несуществующей уже форме - той, которую вы удалили из Autocreate forms.
2
5 / 5 / 2
Регистрация: 04.07.2010
Сообщений: 200
03.12.2011, 22:35  [ТС]

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm2::Button5Click(TObject *Sender)
{
        TForm3 *Form3;
         Form3=new TForm3(NULL);
        Form3->ShowModal();
     
}//кнопка по которой вызывается на основной форме
 
 
__fastcall TForm3::TForm3(TComponent* Owner)
    : TForm(Owner)
{
 Form3->Left=Screen->Width/2-(Form3->ClientWidth/2); // вот из за этого все проблемы
 Form3->Top=Screen->Height/2-(Form3->ClientHeight/2);    // вот из за этого все проблемы
}
Добавлено через 36 секунд
почему?????

Добавлено через 4 минуты
если вставит в кнопку
C++
1
2
3
4
5
void __fastcall TForm3::Button1Click(TObject *Sender)
{
 Form3->Left=Screen->Width/2-(Form3->ClientWidth/2); 
 Form3->Top=Screen->Height/2-(Form3->ClientHeight/2); 
}
то вылетает этажа ошибка
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
03.12.2011, 23:18
Цитата Сообщение от evil0o Посмотреть сообщение
TForm3 *Form3;
Form3=new TForm3(NULL);
Form3->ShowModal();
Какой смысл объявлять переменную без инициализации, если это происходит в следующей строке? Да и странно, что и на NULL компилятор маты не шлет. Но это детали. Либо у вас "рубаха - компилятор", либо Form3 явно до сих пор создается глобально. Что касательно ошибки, то это как раз следствие неверной адресации, когда обращаетесь к свойствам/фунциям/переменным какого-то класса изнутри - не пишите его "предполагаемое имя", а используйте this или не просто ничего не пишите.
0
5 / 5 / 2
Регистрация: 04.07.2010
Сообщений: 200
04.12.2011, 00:30  [ТС]
пользуюсь rad studio, не нравится,баги. а что нужно указывать в
C++
1
Form3=new TForm3(NULL);
чтоб к форме обращаться не через this а через "предполагаемое имя"

про удаление в чем отличие delete MyForm; MyForm->free;
и нужно ли писать
C++
1
  MyForm = NULL;
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.12.2011, 17:27
Цитата Сообщение от evil0o Посмотреть сообщение
1. пользуюсь rad studio, не нравится,баги
2. а что нужно указывать в
3. в чем отличие
4. и нужно ли писать
1. не нравится - никто не принуждает, хотя баги не в студии, имхо
2-3-4. RTFM
0
5 / 5 / 2
Регистрация: 04.07.2010
Сообщений: 200
04.12.2011, 18:48  [ТС]
когда писал про баги, имел ввиду не данную проблему.
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
04.12.2011, 20:12
Цитата Сообщение от evil0o Посмотреть сообщение
пользуюсь rad studio, не нравится,баги.
Не понял смысл если честно... но BCC32.exe вам поможет, если нету Tasm, я думаю, найдется
Цитата Сообщение от evil0o Посмотреть сообщение
а что нужно указывать в ... чтоб к форме обращаться не через this а через "предполагаемое имя"
Трудная мысль... тут не про динамическое создание компонентов прочитать нужно, а про классы в принципе.
Цитата Сообщение от evil0o Посмотреть сообщение
про удаление в чем отличие delete MyForm; MyForm->free;
Free старенький и маразматичный дедушка из Delphi, не стоит его беспокоить.
Цитата Сообщение от evil0o Посмотреть сообщение
и нужно ли писать
А как это вообще к чему-то может относится...
0
04.12.2011, 20:34
 Комментарий модератора 
DefineTrueFalse, если не трудно, выражайтесь более конкретно по теме, а не "растекашеся мыслию по древу" .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.12.2011, 20:34
Помогаю со студенческими работами здесь

Динамическое добавление и удаление новых форм к уже отображенной
Собственно говоря, есть у меня форма в проекте. На форме есть несколько group box-ов, в одном из которых есть picture box и пара кнопок. ...

Как сделать закачку и удаление файлов, создание и удаление каталогов?
Как сделать закачку и удаление файлов, создание и удаление каталогов?

Создание форм
начал программировать сегодня, помогите разобраться в коде: import javax.microedition.midlet.MIDlet; import...

Создание форм
Уважаемые програмисты прошу вашей помощи в создании форм на основе существующих таблиц и запросов...задание и БД прилагаю.....буду очень...

Создание форм в БД
День добрый. Помогите пожалуйста! С акцессом знаком слабо, можно сказать совсем не знаком. А база понадобилась срочно, иначе девушки...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru