ShowWindow - SW_RESTORE, SW_NORMAL - problem

0

witam,

mam oto taki kod jak poniżej
po przyciśnięciu button1, uruchamiam timer, który cały czas podtrzymuje formę na na górze, a do tego jeśli jest zminimalizowana, to ją przywraca.
mam z tym dwa problemy
1: IsIconic(Handle) powinno chyba zwrócić true jak zminimalizowana jest forma, a mi ja pokazuje tylko jak mam w warunku false
2: po przyciśnięciu buttona 2 i wyłączeniu timera oraz powrotu do 'normalnej pracy' okno faktycznie juz nie jest na wierzchu, ale nadal nie daje się zminimalizować

czy ktoś wie w czym jest problem

procedure TForm1.Button1Click(Sender: TObject);
begin

 Timer1.Enabled := True;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin

 Timer1.Enabled := False;

 ShowWindow(Handle, SW_NORMAL);
 SetWindowPos(Handle, HWND_NOTOPMOST, Left, Top, Width, Height, 0);

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin

 if (IsIconic(Handle) = false) then ShowWindow(Handle, SW_RESTORE);
 SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, 0);

end;
1

nie latwiej nie reagować na SC_MINIMIZE?

0
cimak napisał(a)

nie latwiej nie reagować na SC_MINIMIZE?
nie latwiej bo akrywacja tej procedury moze nastapic w tle gdy program juz jest zminimalizowany

OpenIcon(Handle) tez nie dziala prawidlowo
jedynym rozwiazaniem bylo uzycie Application.Restore

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