Splash Screen
Хочу сделать форму-заставку, что нужно для этого:
1. BorderStyle = bsNone;
2. FormStyle = fsStayOnTop;
на всякий случай еще:
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE);
3. Position = poScreenCenter;
4. Как сделать, чтобы форму нельзя было перетаскивать? (Искал, что-то не нашел.)
Может еще что-то забыл?
4. Как сделать, чтобы форму нельзя было перетаскивать?
А за что? Вроде BorderStyle = bsNone не оставляет шансов.
А за что? Вроде BorderStyle = bsNone не оставляет шансов.
млин сам написал, а включить не включил, это у меня к концу дня.
Добрый день!
...
Может еще что-то забыл?
Забыл заглянуть в $(BCB)\Examples\DBTask\MastApp
Забыл заглянуть в $(BCB)\Examples\DBTask\MastApp
спасибо
там заставка корявая, корявая, но на мысль натолкнула
а как можно сделать, чтоб на taskbar у splashscreen не было кнопки?
вот енто:
не работает.
ShowWindow(Application->Handle, SW_HIDE);
Это изврат. Экземпляр надо создавать не через Appllication -> CreateForm, а просто конструктором.
Собственно Appllication -> CreateForm нужен только для прописывания главной формы приложения, в остальном ничем не отличается от простого создания формы конструктором с Application в качестве владельца.
Это изврат. Экземпляр надо создавать не через Appllication -> CreateForm, а просто конструктором.
Собственно Appllication -> CreateForm нужен только для прописывания главной формы приложения, в остальном ничем не отличается от простого создания формы конструктором с Application в качестве владельца.
я так и создаю форму конструктором.
вот что-то я не совсем понял..., что делать то?
я по поводу скрытия кнопки на таскбаре.
да вот еще что, делаю эту самую заставку как в "учебнике" написано, запускаю ее в обработчике Show главной формы методом ShowModal, потом в SplashScreen у меня идет инициализация com порта и если последний не инициализирован необходимо завершить работу всей программы, SplashScreen закрываю методом Close(), а главную форму так не получается закрыть пишет ошибку: Cannot change Visible in OnShow or OnHide.
Cannot change Visible in OnShow or OnHide.
Ну блин конешно он не может изменить значение Visible в OnShow или OnHide
Тем самым создается вечный цикл...
При изменении значения Visible сново срабатывает событеи OnShow, OnHide
Ну блин конешно он не может изменить значение Visible в OnShow или OnHide
Тем самым создается вечный цикл...
При изменении значения Visible сново срабатывает событеи OnShow, OnHide
спасибо конечно за разъяснение "механизмов работы" я это знаю, я спрашивал как можно это решить, как обычно это решают?
а вот с таскбаром еще нет!?
а вот с таскбаром еще нет!?
Так там окно Application отображается. Надо с ним что-то сделать, например, врубить стиль Toolwindow, тогда иконка исчезнет.
Так там окно Application отображается. Надо с ним что-то сделать, например, врубить стиль Toolwindow, тогда иконка исчезнет.
Да, это сразу пришло на ум, но пробовал не полдучилось!?
Даже так кнопка висит ~ 5 сек.
{
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;
}
с Toolwindow у меня тоже что-то не получается!
вот нашел где нормально реализована заставка, у lingvo кнопочка правда на таскбаре есть, но при клике не сворачивается, а после загрузки приложения, его еще можно и в трей свернуть, вот.
У Outlook Express хорошая заставочка, и кнопочки опять же нет :)
работу с треем реализовал.
скрыть кнопку:
показать кнопку
Freeman откуда ты такой умный взялся :)
спасибо.
вот решил задачку:
скрыть кнопку:
показать кнопку
Freeman откуда ты такой умный взялся :)
спасибо.
попробуй еще
HWND hWnd;
hWnd = FindWindow(0, "MyScreen");
ShowWindow(hWnd, SW_HIDE);
UpdateWindow(hWnd);
попробуй еще
HWND hWnd;
hWnd = FindWindow(0, "MyScreen");
ShowWindow(hWnd, SW_HIDE);
UpdateWindow(hWnd);
ты сообщения в теме читал?
Freeman: