Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/30: Рейтинг темы: голосов - 30, средняя оценка - 4.77
 Аватар для Morgan-S23
-26 / 3 / 0
Регистрация: 20.03.2011
Сообщений: 102

Открытие формы

21.07.2013, 10:34. Показов 6206. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема такая. Я пытаюсь открыть форму User сразу после запуска программы. Пишу код в FormCreat главной формы. Выходит ошибка, нельзя обратиться к объекту, который еще не создан.

Пишу так:


C++
1
2
TForm * User= new TForm(this);
User->Show();
Тут создается маленькая пустая форма.

А мне надо не создать форму, а открыть уже существующую форму, там уже много настроечек, иконок и пр. понаставленно. Т.е. программно все это заново создать нельзя, а если можно, то и вовсе придется годами работать.

Вот как открыть форму User сразу после запуска главной формы MainForm?

0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.07.2013, 10:34
Ответы с готовыми решениями:

Открытие (окна) второй формы всегда по центру относительно первой (формы)
Форма №1 - основное окно программы (можно свободно перемещать по экрану). Форма №2 - окно настроек (в нем можно что-то изменить и закрыть;...

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

закрытие-открытие формы
можно ли после Form1->Close(); ее как нибудь открыть (нужен именно Сlose(), а не Hide();)

28
91 / 91 / 22
Регистрация: 02.07.2013
Сообщений: 332
21.07.2013, 12:38
Студворк — интернет-сервис помощи студентам
Morgan-S23, УБЕРИ User из АВТОСОЗДАВАЕМЫХ форм. Не лепи горбатого с таймерами на элементарном.
1
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
21.07.2013, 12:46
таймер (таймеры) в Виндоуз - это вообще "шкатулка Пандоры". Чем от них дальше - тем лучше...
0
 Аватар для Morgan-S23
-26 / 3 / 0
Регистрация: 20.03.2011
Сообщений: 102
21.07.2013, 13:12  [ТС]
Цитата Сообщение от c0rvax Посмотреть сообщение
УБЕРИ User из АВТОСОЗДАВАЕМЫХ форм. Не лепи горбатого с таймерами на элементарном.
хорошо, попробую еще раз

Добавлено через 9 минут
Цитата Сообщение от c0rvax Посмотреть сообщение
УБЕРИ User из АВТОСОЗДАВАЕМЫХ форм. Не лепи горбатого с таймерами на элементарном.
все во второй раз перепроверил. НЕ РАБОТАЕТ. Никак. Если у вас есть желание убедиться, могу скинуть проект

а что, собственно, плохого в варианте с таймером? Время задается минимальное, открывается мгновенно. Или на разных компьютерах будет по-разному?
0
91 / 91 / 22
Регистрация: 02.07.2013
Сообщений: 332
21.07.2013, 13:21
Morgan-S23, сбрасывай проект. Впрочем, мне достаточно несколько строчек из файла проекта и функции FormCreate. Дело в том, что таймеры - это считай отдельные потоки. Если таймер сработает через секунду (к примеру), то не факт, что к этому времени будет создана форма и проинициализированы данные. Даже если такой подход сработает на большинстве компов - он некорректный. Таймер - гарантированно сработает через заданный период. А вот гарантий по поводу создания формы за это время никто не даёт. Не исключено, что при определённых условиях, форма создастся позже, твой флаг необходимости регистрации не будет проставлен, User вообще не появится. Поэтому, тут как минимум надо в таймере проверять, готовы ли данные для анализа, создалась ли основная форма или нет. Вообще глюк, короче...
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
21.07.2013, 13:23
Цитата Сообщение от Morgan-S23 Посмотреть сообщение
что, собственно, плохого в варианте с таймером? Время задается минимальное, открывается мгновенно. Или на разных компьютерах будет по-разному?
да ничего. Иногда таймер понимают неправильно, типа это бикфордов шнур одноразового использования. Опять же, я считаю, чем лаконичнее программа (без лишнего) - тем она надежнее. Можете скинуть проект; я так понимаю - вам нужно решить свою проблему с программой, а не мне чего-то доказать?
0
 Аватар для Morgan-S23
-26 / 3 / 0
Регистрация: 20.03.2011
Сообщений: 102
21.07.2013, 13:33  [ТС]
Цитата Сообщение от c0rvax Посмотреть сообщение
сбрасывай проект. Впрочем, мне достаточно несколько строчек из файла проекта и функции FormCreate. Дело в том, что таймеры - это считай отдельные потоки. Если таймер сработает через секунду (к примеру), то не факт, что к этому времени будет создана форма и проинициализированы данные. Даже если такой подход сработает на большинстве компов - он некорректный. Таймер - гарантированно сработает через заданный период. А вот гарантий по поводу создания формы за это время никто не даёт. Не исключено, что при определённых условиях, форма создастся позже, твой флаг необходимости регистрации не будет проставлен, User вообще не появится. Поэтому, тут как минимум надо в таймере проверять, готовы ли данные для анализа, создалась ли основная форма или нет. Вообще глюк, короче...

в крайнем случае, можно сделать что-то типа загрузки, как в играх. Секунды на 3 может. (У меня все создается и за 0.001 сек). Но все это, я думаю, только в крайнем случае. У меня есть старый калькулятор, там можно проверить. Хотя, если у тебя получится, то это, конечно же лучше будет
Вложения
Тип файла: rar Проект.rar (1.62 Мб, 3 просмотров)
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
21.07.2013, 13:43
у вас формы раскиданы по диску; в проекте вы показали только форму6
0
91 / 91 / 22
Регистрация: 02.07.2013
Сообщений: 332
21.07.2013, 13:51
Morgan-S23, я так и знал. Интересно, как по-твоему, что означали мои слова "убрать TUser из автосоздаваемых форм"?
C++
1
2
3
4
5
6
7
8
Application->Initialize();
Application->CreateForm(__classid(TMainForm), &MainForm);
Application->CreateForm(__classid(TSS), &SS);
Application->CreateForm(__classid(TForm2), &Form2);
Application->CreateForm(__classid(TForm4), &Form4);
Application->CreateForm(__classid(TForm5), &Form5);
Application->CreateForm(__classid(TUser), &User); // она так и продолжает автосоздаваться
Application->Run();
Если ты сразу сказал, что не умеешь убирать форму из списка автосоздаваемых, тебе бы ответили, что надо хотя бы закомментировать эту строчку. И держать формы разбросанными по диску - это моветон. Лучше всего держать исходники в папке проекта.
0
 Аватар для Morgan-S23
-26 / 3 / 0
Регистрация: 20.03.2011
Сообщений: 102
21.07.2013, 13:57  [ТС]
Цитата Сообщение от c0rvax Посмотреть сообщение
Если ты сразу сказал, что не умеешь убирать форму из списка автосоздаваемых, тебе бы ответили
вообще-таки знал. И убирал. Если вы не заметили, я вернулся к варианту с таймерами, а отсюда следует, что я вернул форму в автосоздаваемые

Добавлено через 1 минуту
Цитата Сообщение от c0rvax Посмотреть сообщение
И держать формы разбросанными по диску - это моветон
Все они в одной папке. Когда для вас готовил папку, не все туда пошли. Могу скинуть прям оригинальную рабочую папку, если вам это так важно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.07.2013, 13:57

Скрытие и открытие формы
Имеется небольшая форма без бордюра и заголовка окна пристыкованная к правой части десктопа. Необходимо сделать чтобы когда убираешь...

Открытие формы по кнопке
Доброго времени суток! Как реализовать открытие формы по кнопке например? Я создаю в проекте ещё одну форму (Project.exe -> Add New...

Открытие формы при запуске
Код, который при открытии формы, проверяет значение из ини. Если оно равно одному, то открывает другую форму, закрывая эту. Вызывает фатал....

Открытие формы из другого проекта
Всем привет. Мне нужно открыть в первом проекте форму, которую я создавал во втором проекте.

Открытие формы на весь экран
Как сделать, чтобы форма выводилась на весь экран, но панель задач была бы видна?


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru