Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

SplashScreen в зависимости от результата функции

490
25 октября 2007 года
frid-karatel
357 / / 15.09.2007
Необходимо запустить SplashScreen только в том случае, если определенная функция вернула false...

Как такое реализовать?
490
25 октября 2007 года
frid-karatel
357 / / 15.09.2007
итак... опишу подробнее...

у меня есть программа. При запуске прогаммы она проверяет, скажем, текущую дату, и в зависимости от даты показывают ту или иную форму... так кот - как мне лучше реализовать такую вещь, ведь есть:
1. Сначала покажется, или хотя бы мелькнет, главна форма (основная), прежде чем покажется та, которая мне нужна
2. При закрытии не главной формы могут возникать проблемы с закрытием приложения... т.е. я хочу, чтобы при закрытии не главной формы закрывалось приложение... а бывает так, что в некоторых лучаях не помогает OnClose или OnHide, т.е. при закрытии формы приложение висит в таск баре и не закрывается...

как мне поступить в данном случае... или случаях?
309
26 октября 2007 года
el scorpio
1.1K / / 19.09.2006
Цитата:
При запуске прогаммы она проверяет, скажем, текущую дату, и в зависимости от даты показывают ту или иную форму


Код:
// Функция WinMain, файл ИМЯ_ПРОЕКТА.cpp
try
{
    Application->Initialize();
    Application->ShowMainForm = false;
    Application->CreateForm(__classid(TForm1), &Form1);
    Application->CreateForm(__classid(TForm1), &Form2);
    if (Form1->Показать_Меня_Сейчас())
        Form1->Show();
    else
        Form2->Show();

    Application->Run();
}
catch (Exception &exception)
{
    Application->ShowException(&exception);
}
catch (...)
{
    try
    {
        throw Exception("");
    }
    catch (Exception &exception)
    {
        Application->ShowException(&exception);
    }
}
return 0;


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


 
Код:
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
Application->Terminate(); // Функция прекращения работы
// глобального объекта "Приложение"
}
490
26 октября 2007 года
frid-karatel
357 / / 15.09.2007
Про первое - спасибо! ;)

Про второе... я так делаю, но бывают иногда такие случаи, например, программа просто повисла при выполнении какой-то операции, и я ее хочу закрыть.. При закрытии не главной формы, приложение в таких слчаях может не закрыться, т.. форма исчезнет, а вот программа так и будет сидеть в таскбаре и процессах :)

Добавлено:
1. Можно ли вызывать функцию не из юнита, в котором есть форма, а из безформенного юнита?
2. Можно ли в Application.h (где указаны все формы и осуществляется запуск) назначать переменные, например, мне необходимо получить результаты функций, находящихся в пяти формах, и на основе "среднего" числа показать определенную форму (SplashScreen)?
309
29 октября 2007 года
el scorpio
1.1K / / 19.09.2006
Цитата:
Можно ли в Application.h...


Где-где? Это что за файл такой?
Вышеперечисленные действия можно делать в файле Имя_Проекта.cpp - h-файл для него в проекте отсутствует.
В общем, есть функция WinMain, которая вызывается один раз и запускает объект Application. Внутри неё (до и после команды Application->Run) можно объявлять и использовать что угодно.

P.S.
А первого вопроса вообще не понял....

490
29 октября 2007 года
frid-karatel
357 / / 15.09.2007
то есть можно работать с переменными и с вычислениями не только на форме, но и в юните приложения?
309
30 октября 2007 года
el scorpio
1.1K / / 19.09.2006
Да, только не нужно его перегружать. Если надо кучу действий вне цикла работы приложения сделать, то их проще в отдельный модуль вынести, подключить его и вызывать функуциями.
А если очень много - тогда уже отдельный класс создать. Кстати, этот класс можно использовать для перехвата событий "приложения".
Хотя самое главное в программировании - не усложнять себе жизнь
490
30 октября 2007 года
frid-karatel
357 / / 15.09.2007
а модуль должен быть с формой? а если без формы создать, то как вызывать функции?
309
30 октября 2007 года
el scorpio
1.1K / / 19.09.2006
Просто модуль. Через главное меню [File -> New -> Unit] в программу добавляется модуль состоящий из .cpp и .h файла. Соответственно, потом h-файл подключается к главному модулю проекта через #include
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог