Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Сворачивание в трей при запуске


Автор: KTatsu 26.1.2010, 10:18
На событии формы OnCreate
Код

if(Ini->ReadInteger("Flags","MinimizeWithStart",0)==1)
{
CheckBox1->Checked=true;
PostMessage(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
TrayIcon1->Visible=true;
N1->Visible=true;
}

Работает прекрасно.
Но когда я добавил TApplicationEvents и добавил в нем на событие OnMinimize
Код

PostMessage(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
TrayIcon1->Visible=true;
N1->Visible=true;

Компилируется нормально. Но вот если поставить флаг "MinimizeWithStar" в ini файле, то при запуске, если запускать без билдера, работает, но выскакивает ошибка:
Цитата

Cannot Create System Shell Notification Icon.

Если запускать из билдера компиляцией, появляется окно:
Цитата

Source File not Found: trayicon.cpp

Жму "Ignore", выдает ту же ошибку, что выше и останавливает процесс.
В коде все помечено синими маркерами, зеленый курсор стоит на закрывающую фигурную скобку:
Код

void __fastcall TForm1::ApplicationEvents1Minimize(TObject *Sender)
{
PostMessage(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
N1->Visible=true;
TrayIcon1->Visible=true;        
}

trayicon.cpp искал, есть только в Examples, если указываю его, тоже ругается...

Подскажите, пожалуйста, что делаю не так.

Автор: 3315720 27.1.2010, 14:05
Тоже с таким сталквался, решения тогда ненашёл. Сейчас думаю может компонент поновее взять...

Автор: KTatsu 27.1.2010, 20:36
Ладно, будем считать, что я выкрутился - в OnCreate тупо свернул форму.
Но т.к. 
Код

Application->Minimize();
 выдавало ту же ошибку, я воспользовался
Код

Form1->WindowState=wsMinimized;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)