Cześć
Mam nietypowy problem.
Sorki że się rozpiszę, ale może ktoś z Was miał taki problem i jakoś go rozwiązał.
Otóż robię programik i użyłem w nim komponentu do nakładania skórek (jest b. dobry i niechciałbym z niego rezygnować ale nie mam kodu by luknąć co za błąd w nim siedzi) ..i gdy kliknę na button minimalizuj to na moment przed minimalizacją pokazana jest standardowa belka windowsa - bardzo brzydko to wygląda ( jest skórka, znika kawałek skórki na belce..a potem minimalizacja)
Więc wpadłem na pomysł by przechwycić moment wciśnięcia buttona i tam podstawić swój kod na minimalizację. Zrobiłem to tak:
PROCEDURE TForm1.WMSysCommand(var Message:TWMSysCommand);
Begin
//jeżeli kliknięto na guzik minimalizacji okna to...
if message.CmdType = SC_MINIMIZE then
begin
//poniższy sposób minimalizacji zapewnia uniknięcie błędu skórki (belka)
ShowWindow(Application.Handle, SW_MINIMIZE);
//jeżeli opcja chowania do traya to...
if CoolTrayIcon1.MinimizeToTray then
begin
Application.MainForm.Visible:= False;
ShowWindow(Application.Handle,SW_HIDE);
end;
end else inherited
End;
Działa dobrze - okno szybko szybko znika i albo chowa się na pasek zadań, albo w tray.
Ale :( znowu kolejny problem... okno minimalizuje się z różnych miejsc na ekranie. Wyjaśnię w czym rzecz:
Przykładowo minimalizuję okno klikając na "szufladę" okna na pasku zadań lub wybierając tam z menu myszy _Minimalizuj
i wtedy jakoś zapamiętywana jest pozycja okna.
Gdy przesunę okno w inne miejsce ekranu i kliknę na guzik minimalizuj to zaczyna mi minimalizować z tej ostatniej pozycji.
Po [CIACH!] to wygląda.. okno jest w prawym górnym rogu ekranu - klikam na minimalizację.. leci przykładowo w lewy górny róg (tam gdzie było ostatnio) i dopiero na pasek zadań :(
Głowa mnie boli bo nie mam rozwiązania ... podumałem troche, potestowałem i stwierdziłem że najbardziej prawidłowe jest minimalizowanie okna gdy wybiorę z menu myszy (szuflady na pasku) opcję Minimalizuj.
Ale nie wiem jak zainicjować kliknięcie na tą opcję ? Gdybym znał instrukcję to umieściłbym ją w powyższej proc. WMSysCommand
Proszę zerknijcie - może zrobiłem jakiś błąd, albo może ktoś zna ten problem i rozwiązanie ?