Po wykonaniu pewnych czynności obliczeniowych okno mojego programu przekazuje
automatycznie Fokus na okno zupełnie osobnego programu innego procesu ,które do tej
pory było w stanie zminimalizowanym. Wykonuje to zamieszczony w przykładzie prosty
,odnaleziony na tym forum kod.Wszystko niby działa... jednak pojawia się dziwne zjawisko
Okno innej aplikacji które w ten sposób otrzymało fokus nie można ponownie zminimalizować!!!
Czemu tak się dzieje i jak temu zaradzić?
tu przykład kodu zmieniającego fokus:
procedure TForm1.Button1Click(Sender: TObject);
var
Uchwyt: THandle;
begin
//Pobieramy uchwyt do okna o okreslonej nazwie
Uchwyt:=FindWindow(nil,'TestoweOkno');
//Sprawdzamy czy okno jest aktywne
if IsWindowEnabled(Uchwyt) then ShowMessage('Aktywne');
//Sprawiamy ,ze okno staje sie widoczne
ShowWindow(Uchwyt, SW_SHOW);
//Sprawdzamy czy okno jest widoczne
if IsWindowVisible(Uchwyt) then ShowMessage('Widoczne');
//Ustawiamy aktywne i widoczne okno.
SetForegroundWindow(Uchwyt);
end;