CoolTrayIcon i StartMinimized

0

Dzień dobry, dobrze znany wszystkim komponent CoolTrayIcon
ma właśnie tę wypasioną właściwość czyli StartMinimized.

Dzięki niej mam program niewidoczny po włączeniu, kompletnie
ukryty, tylko go widać na liście procesów, tyle że potrzebuje
go czasami uwidocznić i tu się zaczyna problem, bo jak to
zrobię z tego programu przez Show to jest OK ale ja potrzebuje
z innego programu czyli przez ShowWindow(Uchwyt, SW_SHOW)

Niestety taka instrukcja powoduje że pojawia się okno mojego
programu ale bez żadnych komponentów, jest kompletnie puste,
co mam zrobić i dlaczego tak się dzieje ?

Procedura Show okna wykonuje coś takiego:
Visible := True;
BringToFront;
Czy można to jakoś zastąpić przez funkcje WinAPI ?

Czy mogę inaczej uzyskać aby forma była niewidoczna przy
uruchomieniu ?

0

Miałem identyczny problem.
Zrobiłem tak (BCB, ale łatwo sobie przełożysz):
http://4programmers.net/Forum/viewtopic.html?id=25186

a w programie tak:
plik *.h

#define WM_SHOWYOURSELF (WM_APP + 400)
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_SHOWYOURSELF, TMessage, ShowYourself);
END_MESSAGE_MAP(TForm)

plik *.cpp

void __fastcall TFDiskFree::ShowYourself(TMessage &Msg)
{TextTrayIcon->ShowMainForm();
  SetForegroundWindow(Handle);
  if (BorderStyle==bsNone)   //jeśli prog jest przywracany po raz pierwszy i nie ma
    ShowWindow(Application->Handle, SW_HIDE);//ramki to schowaj guzik na pasku zadań
  TextTrayIcon->IconVisible = false;
}

Czyli po prostu jak chcesz pokazać swój program, to wysyłasz do niego własny komunikat i w jego funkcji obsługi pokazujesz formę. W razie problemów masz mnie na gg.

0

No... z tym tłumaczeniem BCB na Delphi to bym sobie nie poradził,
ale na szczęście napisałeś na dole to zdanie po polsku, które
już łatwiej było przetłumaczyć na Delphi :-D

serdeczne dzięki... [hurra]

//no problem [soczek] - Marooned

1 użytkowników online, w tym zalogowanych: 0, gości: 1