Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
64 / 64 / 10
Регистрация: 19.10.2009
Сообщений: 234

Создание дочерней формы

19.10.2009, 20:13. Показов 3403. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет пипл! Очень нужна помощь! Я в С++ новичек, так что не судите строго.
Вот имеется код на Delphi
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//процедура закрытия дочерней формы
procedure TForm1.ChildFormClose(Sender: TObject; var Action: TCloseAction);
 BEGIN
  if Cont=true then Cont:=false;
  Action:= caFree;
 END;
//процедура создания дочерней формы
procedure Form1.ContractBClick(Sender: TObject);
 BEGIN
  if Cont=false then
     Begin
      Form2:=TForm2.Create(self);
      Form2.OnClose:=ChildFormClose;
      Form2.Show;
      Cont:=true;
     End;
 END;
переписываю тоже самое на С++

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall CloseChildForm(TObject *Sender, TCloseAction &Action)
{
 if (Org==false) { Org=true;
 }
 Action=caFree;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RzToolButton1Click(TObject *Sender)
{
 if (Org==true) {
     Form2=new TForm2(Form2);
     Form2->OnClose=CloseChildForm;
     Form2->Show();
     Org=false;
 }
}
нефига не работает, вот ошибка
[ILINK32 Error] Error: Unresolved external '__fastcall TForm1::CloseChildForm(System::TObj ect *, Forms::TCloseAction&)' referenced from C:\USERS\МЫ\DESKTOP\NEW\DEBUG\UNIT1 .OBJ

что я сделал не так, помогите разобраться
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.10.2009, 20:13
Ответы с готовыми решениями:

Создание дочерней формы
Может быть вопрос элементарный, но с ходу решения не нашел. Задача такая. Есть главная форма с кнопкой, по нажатию на которую...

Загрузка дочерней формы
Доброго времени суток. Обращаюсь к вам за советом. У меня такая проблема. В программу с самого начала грузится база данных...

Сворачивание дочерней формы
Вообщем имеется 2 формы. 1 служит для некоторых действий, а вторая уже для полной работы (запуск с первой формы обязателен!) Когда...

6
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
19.10.2009, 21:11
Larsus, а в файле-заголовке (h) прописан прототип функции?
0
64 / 64 / 10
Регистрация: 19.10.2009
Сообщений: 234
19.10.2009, 21:14  [ТС]
Да в public:

Если убрать 13 строку, прога компилируется, но как тогда закрыть дочернюю форму, нажимая на крестик она просто сварачивается в низ первой формы =(
На Delphi все работало замечательно
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
19.10.2009, 21:25
Larsus, покажи хидер файл...
0
64 / 64 / 10
Регистрация: 19.10.2009
Сообщений: 234
19.10.2009, 21:29  [ТС]
Блин, метод тыка великая весчь, поменял строку 12
Цитата Сообщение от Larsus Посмотреть сообщение
Form2=new TForm2(Form2);
на
C++
1
Form2=new TForm2(this);
всё заработало=)
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
19.10.2009, 21:33
Larsus, первый раз срабатывало из-за того, что, видимо, Form2 находится в auto-create form, зайдите в настройки проекта и перенесите ее в обычные формы, а то лишний раз объект создается причем ненужный и остающийся в блуждающих указателях...
0
64 / 64 / 10
Регистрация: 19.10.2009
Сообщений: 234
19.10.2009, 21:38  [ТС]
Цитата Сообщение от VoodooMan Посмотреть сообщение
Larsus, первый раз срабатывало из-за того, что, видимо, Form2 находится в auto-create form, зайдите в настройки проекта и перенесите ее в обычные формы, а то лишний раз объект создается причем ненужный и остающийся в блуждающих указателях...
не там я сразу удалил, у меня основной косяк, как мне подсказали на другом форуме, я в о второй сторке забыл написать TForm1::
C++
1
void __fastcall CloseChildForm(TObject *Sender, TCloseAction &Action)
но когда я это исправил, стала выходить ошибка Access voliation at address... ну и т.д. т.е как я понял память не очищалась, вот я решил методом тыка, и исправил form2 на this
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.10.2009, 21:38
Помогаю со студенческими работами здесь

Закрытие дочерней формы.
Пиплс. Есть проблема. Если в дочерней форме открывается другая форма, то при закрытии дочерней происходит ошибка. Если в дочерней...

Не изменяется название дочерней формы
Здравствуйте, сделал форму авторизации по данному уроку. Все работает отлично, только вот на самой форме авторизации при попытке изменить...

Вывод из дочерней формы в главную
Есть две формы, форма1(Главная) и форма2(Побочная, которую вызываю из главной). Так вот, при по пытке вывода строки из побочной формы2 в...

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

При закрытии дочерней формы с нее пропадают данные
Вопрос прост, есть главная форма на которой вызывается несколько дочерних(могут и одновременно), на одной из форм есть StringGrid, в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru