niedziela, 7 czerwca 2009

ShowWindow i TWebBrowser

Taki ostatnio problemik mnie irytował. Na formularz główny wstawiam TWebBrowser, i chciałbym żeby podczas uruchomienia programu główny formularz się nie wyświetlał. Oczywiście rozwiązaniem jest dodać w pliku projektu taką linijkę kodu:

Application.ShowMainForm:=false;

Wszystko ładnie pięknie działa Forma się nie pokazuje, ale jest problem - bo wspomniany wcześniej WebBrowser się dopiero do końca zainicjuje jak nasza główna forma z nim się wyświetli. Można pokazać na chwilę Formę i odrazu zrobić ją niewidoczną, ale wtedy nam się zaktywuje okienko które nie chcemy i do tego mrugnie. Problem rozwiązałem w ten sposób że kiedy wszystko się zainicjuje w naszym programie to na końcu wstawiłem taki kawałek programu i powiedzmy że problem rozwiązany.

IF NOT Application.ShowMainForm THEN
BEGIN
Top := Screen.Height + 10;
visible := True;
ShowWinNoAnimate(Handle, SW_SHOWNOACTIVATE);
visible := False;
END;

Użyłem tutaj funkcji z biblioteki JvJCLUtils, jak narazie działa to na WinXP Home, niewiem jak na innych wynalazkach Mikosoftu...