Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 19.09.2011
Сообщений: 55

Загрузка дочерней формы

18.02.2012, 04:09. Показов 2397. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.

Обращаюсь к вам за советом.
У меня такая проблема. В программу с самого начала грузится база данных (Form1). Это занимает определенное время (секунд 30). Как организовать, чтобы пока загружалась база, было окно (Form2)
с сообщением о том, что она грузится. А как только база загрузилась Form2 пропадало.
Я пыталась сделать через Visible, так выдает ошибку: "Access violation at address 004565CZ"
Пробывала и с помощью ShowModal () тоже никак.
Может, я чет не так делаю. Подскажите, пожалуйста.

Спасибо заранее за ответ =)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.02.2012, 04:09
Ответы с готовыми решениями:

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

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

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

10
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
18.02.2012, 09:25
Попробуй так:
C++
1
2
3
4
5
6
7
8
// в событии Form1/OnCreate
Form1->Hide;
Form2->Show;
//................
//................
// а когда база загрузится
Form2->Hide;
Form1->Show;
если момент окончательной загрузки базы не ловится, тогда можно в таймер поставить на 30 секунд.
1
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
18.02.2012, 11:43
в свойствах проекта на закладке формы перенесите форму-заставку из списка авто создаваемых в список доступных, перед вызовом аппликэйшн ран в главном файле проекта установите шоу майн форм в фолс,при создании главной формы сами создайте форму-заставку при помощи new, покажите ее, загрузите данные, закройте, сделайте главную форму видимой
1
1 / 1 / 0
Регистрация: 19.09.2011
Сообщений: 55
18.02.2012, 15:27  [ТС]
Samrisbe, выдает ошибку, когда создаю в событии OnCreate.

Добавлено через 4 минуты
Цитата Сообщение от vxg Посмотреть сообщение
в свойствах проекта на закладке формы перенесите форму-заставку из списка авто создаваемых в список доступных, перед вызовом аппликэйшн ран в главном файле проекта установите шоу майн форм в фолс,при создании главной формы сами создайте форму-заставку при помощи new, покажите ее, загрузите данные, закройте, сделайте главную форму видимой
vxg, спасибо.

вот вы написали:
в свойствах проекта на закладке формы перенесите форму-заставку из списка авто создаваемых в список доступных, перед вызовом аппликэйшн ран в главном файле проекта установите шоу майн форм в фолс,при создании главной формы сами создайте форму-заставку при помощи new, покажите ее, загрузите данные, закройте, сделайте главную форму видимой

Где можно установить шоу майн форм в фолс? Я чет не нашла.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
18.02.2012, 15:44
в файле срр проекта (не реализации):
C++
1
Application->ShowMainForm = false; //  Не показывать главную форму
до блока
C++
1
Application->CreateForm
,и еще, кажись, это можно сделать в свойствах проекта на вкладке Application .
0
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
18.02.2012, 15:47
Цитата Сообщение от Katrin1977 Посмотреть сообщение
Samrisbe, выдает ошибку, когда создаю в событии OnCreate.
Можно и в OnShow...
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
18.02.2012, 16:11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <vcl.h>
#pragma hdrstop
#include "заголовочный файл form2.h" // <--- обратите внимание!
#include <tchar.h>
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
USEFORM("Unit3.cpp", form2);
//---------------------------------------------------------------------------
WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
  try
  {
    Application->Initialize();
    Application->MainFormOnTaskBar = true;
    Application->CreateForm(__classid(TForm1), &Form1);
    Application->CreateForm(__classid(Tform2), &form2);
    Application->ShowMainForm = false;
    form2->Show();
    Application->Run();
  }
  catch (Exception &exception)
  {
    Application->ShowException(&exception);
  }
  catch (...)
  {
    try
    {
      throw Exception("");
    }
    catch (Exception &exception)
    {
      Application->ShowException(&exception);
    }
  }
  return 0;
}
//-----------------------------------------------------------------------------------
void __fastcall Tform2::FormClose(TObject *Sender, TCloseAction &Action)
{
  Application->MainForm->Show();
}
И ничего в настройках проекта делать не надо.

Добавлено через 3 минуты
Samrisbe, нельзя видимость формы менять в событии OnShow, увы...
0
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
18.02.2012, 17:46
Цитата Сообщение от BRcr Посмотреть сообщение
Samrisbe, нельзя видимость формы менять в событии OnShow, увы...
Я в OnCreate таким образом делаю и все работает прекрасно...
C++
1
2
3
if (CheckBox2->Checked==true){ // если стоит запускать в свернутом виде
     ShowWindow(Application->Handle,SW_HIDE); //Скрываем кнопку с таск бар
     Application->ShowMainForm = false;
Сюда можно добавить Form2->Show(); и суп готов.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
18.02.2012, 18:37
Samrisbe, кто спорит? Пожалуй, стоит уточнить, что я имел в виду.

В OnCreate, равно как и в конструкторе формы можно менять свойство Visible этой формы так же, как и любое другое ее свойство. В OnShow формы ее свойство Visible менять нельзя, равно как и вызывать методы, это делающие - Show() и Hide().
Свойство Application->ShowMainForm - это не то же самое, что и свойство Visible главной формы. Поэтому свойство Application->ShowMainForm можно менять в OnShow любой формы, как и,практически, в любом другом месте, правда, результат, возможно, не всегда будет соответствовать ожиданиям, но все-таки...
0
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
18.02.2012, 19:34
Цитата Сообщение от BRcr Посмотреть сообщение
Поэтому свойство Application->ShowMainForm можно менять в OnShow любой формы, как и,практически, в любом другом месте, правда, результат, возможно, не всегда будет соответствовать ожиданиям, но все-таки...
Можеш по подробней растолковать?
Я реально еще зеленый писатель программ, и не думал ставить под сомнение методы кого либо здесь!
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
18.02.2012, 21:30
Я могу ошибаться, но выглядит все так, будто свойство Application->ShowMainForm имеет смысл только для функции Application->Run(), так как даже если оно выставлено в true, главную форму в любой момент можно показать как обычно ее методом Show() или свойством Visible.

Соответственно, если менять свойство ShowMainForm где-то после вызова Application->Run(), то форма не исчезнет и более того, появится снова после последовательного вызова ее методов Hide() и Show().

Обработчик события формы OnCreate и ее конструктор вызываются после вызова Application->CreateForm() и до вызова Application->Run(), поэтому в них изменение свойства ShowMainForm имеет смысл.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.02.2012, 21:30
Помогаю со студенческими работами здесь

Создание дочерней формы
Привет пипл! Очень нужна помощь! Я в С++ новичек, так что не судите строго. Вот имеется код на Delphi //процедура закрытия дочерней...

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

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

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

Сохранение текста в файл из RichEdit дочерней формы MDIApplication
подскажите пожалуйста, как сохранить текст из дочерней формы с помощью SaveDialog пробую так, но выдает ошибку, что RichEdit is not a...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Инструменты 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