ordre des fenetres. complément à la FAQ
J'ai les fenetres 1-2-3-4-5 d'applications différentes sur mon écran.
je veux, d'un clilc sur Delphi mettre en avant la fenetre 2 et, juste sous elle, la fenetre 3 (en qque sorte, 3 est un fond d'écran pour 2).
La FAQ donne le moyen de faire passer une fenetre en premier plan, et ça fonctionne très bien
Mon idée est de le faire successivement pour la fenetre 3 puis pour la fenetre 2.
ce qui donne ceci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| procedure TForm1Devant;
Var Proc,Nous:Integer;
begin
Proc:=GetWindowThreadProcessId(GetForeGroundWindow);
Nous:=GetCurrentThreadID;
If Proc<>Nous Then
Begin
// Nous ne sommes pas l'application en premier plan
AttachThreadInput(Nous,Proc,True);
SetForeGroundWindow(Haundle);
AttachThreadInput(Nous,Proc,False);
Application.BringToFront;
End Else
Begin
// Nous sommes déjà en premier plan
SetForeGroundWindow(Haundle);
End;
end;
begin
Haundle := findwindow(nil, 'mafenetre3');
TForm1Devant;
sleep(1000);
Haundle := findwindow(nil,'mafenetre2');
TForm1Devant;
end. |
ça ne fonctionne pas, ni avec une boucle, ni en récrivant deux fonctions distinctes. Si vous avez une idée...
merci.
Jean Pierre