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 delphi : Sélectionner tout - Visualiser dans une fenêtre à part
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