Application->MainFormOnTaskBar = true;
Application->MainFormOnTaskBar = false;
SetApplicationMainFormOnTaskBar(Application, true);
SetApplicationMainFormOnTaskBar(Application, false);
Application->MainFormOnTaskBar = true;
Application->MainFormOnTaskBar = false;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Application->CreateHandle();
}
ShowWindow(Application->Handle, SW_HIDE);
//---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1Minimize(TObject *Sender)
{
ShowWindow(Application->Handle, SW_HIDE);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1Restore(TObject *Sender)
{
ShowWindow(Application->Handle, SW_HIDE);
}
//---------------------------------------------------------------------------
Cyfrowy Baron napisał(a):W środowisku C++Builder 2009 i 2010 trzeba utworzyć uchwyt do aplikacji, w tym celu dodajemy np. w konstruktorze klasy taką funkcję:
- Kod: Zaznacz cały
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Application->CreateHandle();
}
Cyfrowy Baron napisał(a):Problem w tym, że konstruktor właśnie nie tworzy tego uchwytu w środowiskach C++Builder 2009 i 2010.
Cyfrowy Baron napisał(a):A co to wogóle znaczy: Do not call CreateHandle directly.
Nie wywołuj CreateHandle od razu. Więc może rzeczywiście lepiej tego nie wywoływać w konstruktorze klasy, ale dopiero gdy zachodzi taka potrzeba. Help nie precyzuje co się stanie, gdy funkcja zostanie użyta od razu.
The New Kosciuszko Foundation Dictionary napisał(a):directly
adv.
1. bezpośrednio; wprost.
2. Br. przest. zaraz.
conj.
Br. gdy tylko, zaraz po tym, jak.
Co przez to rozumiesz ? U mnie (test 2010). Wartość TApplication->Handle jest ustawiona.
ShowWindow(this->Handle, SW_HIDE);
ShowWindow(Application->Handle, SW_HIDE);
Application->CreateHandle();
ShowWindow(Application->Handle, SW_HIDE);
W helpie jest napisane że CreateHandle wywołuje konstruktor TApplication "application's constructor calls CreateHandle", a samemu bezpośrednio nie trzeba CreateHandle wywoływać (przynajmniej ja to tak rozumiem).
Cyfrowy Baron napisał(a):to okno zostanie ukryte, ale jeżeli ten sam komunikat w C++Builder 2010 wyślę do aplikacji:
- Kod: Zaznacz cały
ShowWindow(Application->Handle, SW_HIDE);
to nic siÄ™ nie dzieje,
Powrót do Ogólne problemy z programowaniem
Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość