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

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

18.02.2012, 04:09. Показов 2403. Ответов 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
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,461
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
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru