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

Ваш аккаунт

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

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

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

Splash Screen

335
06 сентября 2005 года
enola
379 / / 25.01.2005
Добрый день!
Хочу сделать форму-заставку, что нужно для этого:
1. BorderStyle = bsNone;
2. FormStyle = fsStayOnTop;
на всякий случай еще:
 
Код:
SetForegroundWindow(Handle);
    SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE);

3. Position = poScreenCenter;
4. Как сделать, чтобы форму нельзя было перетаскивать? (Искал, что-то не нашел.)

Может еще что-то забыл?
10
06 сентября 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by enola
4. Как сделать, чтобы форму нельзя было перетаскивать?


А за что? Вроде BorderStyle = bsNone не оставляет шансов.

335
06 сентября 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by Freeman
А за что? Вроде BorderStyle = bsNone не оставляет шансов.



млин сам написал, а включить не включил, это у меня к концу дня.

246
06 сентября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by enola
Добрый день!
...

Может еще что-то забыл?


Забыл заглянуть в $(BCB)\Examples\DBTask\MastApp

335
06 сентября 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by GIZMO
Забыл заглянуть в $(BCB)\Examples\DBTask\MastApp



спасибо
там заставка корявая, корявая, но на мысль натолкнула

335
06 сентября 2005 года
enola
379 / / 25.01.2005
вот что еще вспомнил:
а как можно сделать, чтоб на taskbar у splashscreen не было кнопки?

вот енто:
 
Код:
ShowWindow(Application->Handle, SW_HIDE);

не работает.
10
06 сентября 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by enola
ShowWindow(Application->Handle, SW_HIDE);


Это изврат. Экземпляр надо создавать не через Appllication -> CreateForm, а просто конструктором.

Собственно Appllication -> CreateForm нужен только для прописывания главной формы приложения, в остальном ничем не отличается от простого создания формы конструктором с Application в качестве владельца.

335
07 сентября 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by Freeman
Это изврат. Экземпляр надо создавать не через Appllication -> CreateForm, а просто конструктором.

Собственно Appllication -> CreateForm нужен только для прописывания главной формы приложения, в остальном ничем не отличается от простого создания формы конструктором с Application в качестве владельца.



я так и создаю форму конструктором.
вот что-то я не совсем понял..., что делать то?
я по поводу скрытия кнопки на таскбаре.

да вот еще что, делаю эту самую заставку как в "учебнике" написано, запускаю ее в обработчике Show главной формы методом ShowModal, потом в SplashScreen у меня идет инициализация com порта и если последний не инициализирован необходимо завершить работу всей программы, SplashScreen закрываю методом Close(), а главную форму так не получается закрыть пишет ошибку: Cannot change Visible in OnShow or OnHide.

299
07 сентября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by enola
Cannot change Visible in OnShow or OnHide.

Ну блин конешно он не может изменить значение Visible в OnShow или OnHide
Тем самым создается вечный цикл...
При изменении значения Visible сново срабатывает событеи OnShow, OnHide

335
07 сентября 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by 3D Bob
Ну блин конешно он не может изменить значение Visible в OnShow или OnHide
Тем самым создается вечный цикл...
При изменении значения Visible сново срабатывает событеи OnShow, OnHide



спасибо конечно за разъяснение "механизмов работы" я это знаю, я спрашивал как можно это решить, как обычно это решают?

335
07 сентября 2005 года
enola
379 / / 25.01.2005
решил проблему с выходом из программы, вернее из заставки, сделал как в примере: \Examples\DBTasks\MastApp\mastapp.bpr

а вот с таскбаром еще нет!?
10
07 сентября 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by enola
а вот с таскбаром еще нет!?


Так там окно Application отображается. Надо с ним что-то сделать, например, врубить стиль Toolwindow, тогда иконка исчезнет.

246
07 сентября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by Freeman
Так там окно Application отображается. Надо с ним что-то сделать, например, врубить стиль Toolwindow, тогда иконка исчезнет.


Да, это сразу пришло на ум, но пробовал не полдучилось!?
Даже так кнопка висит ~ 5 сек.

Код:
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    try
    {
         TForm2 *SplashF = new TForm2(NULL);
         SplashF->Show();
         SplashF->Update();

         Sleep(5000);
         
         SplashF->Close();
         delete SplashF;
         /*Application->Initialize();
         Application->CreateForm(__classid(TForm1), &Form1);
         Application->Run()*/
    }
    catch (Exception &exception)
    {
         Application->ShowException(&exception);
    }
    return 0;
}
335
07 сентября 2005 года
enola
379 / / 25.01.2005
мда, даже в mastapp кнопочка на таскбаре есть, кликаешь по ней (заставка) она сворачивается и разворачивается :)

с Toolwindow у меня тоже что-то не получается!

вот нашел где нормально реализована заставка, у lingvo кнопочка правда на таскбаре есть, но при клике не сворачивается, а после загрузки приложения, его еще можно и в трей свернуть, вот.
У Outlook Express хорошая заставочка, и кнопочки опять же нет :)

работу с треем реализовал.
335
07 сентября 2005 года
enola
379 / / 25.01.2005
вот решил задачку:

скрыть кнопку:
 
Код:
SetWindowLong(Application->Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);


показать кнопку
 
Код:
SetWindowLong(Application->Handle, GWL_EXSTYLE, NULL);


Freeman откуда ты такой умный взялся :)
спасибо.
533
07 сентября 2005 года
Visualex
254 / / 07.01.2005
Цитата:
Originally posted by enola
вот решил задачку:

скрыть кнопку:
 
Код:
SetWindowLong(Application->Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);


показать кнопку
 
Код:
SetWindowLong(Application->Handle, GWL_EXSTYLE, NULL);


Freeman откуда ты такой умный взялся :)
спасибо.


попробуй еще
HWND hWnd;
hWnd = FindWindow(0, "MyScreen");
ShowWindow(hWnd, SW_HIDE);
UpdateWindow(hWnd);

335
08 сентября 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by Visualex
попробуй еще
HWND hWnd;
hWnd = FindWindow(0, "MyScreen");
ShowWindow(hWnd, SW_HIDE);
UpdateWindow(hWnd);



ты сообщения в теме читал?
Freeman:

Цитата:
Это изврат. Экземпляр надо создавать не через Appllication -> CreateForm, а просто конструктором.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог