Bonjour,
Voici le problème : Lorsqu'un composant affiche une animation (vidéo ou ici dans l'exemple joint un simple TfloatAnimation) et que le PC passe en mode veille/économiseur d'écran (Exemple ici : simple extinction de l'écran), au retour du mode, il n'y a plus aucun refresh de la frame de l'application. L'application semble bloquée. En fait ce n'est pas le cas car l'interface répond... mais ça ne se voit pas.
J'ai mis le projet en pièce jointe. Une simple fiche avec 3 boutons. Un pour éteindre l'écran (on peut aussi paramétrer le PC pour que l'écran s'éteigne seul, même résultat), un bouton qui ne fait rien, et un bouton utilisant TFloatAnimation.
Le fait de cliquer sur le bouton "Black Screen" éteint l'écran. Quand on bouge la souris pour le faire se rallumer, plus rien ne se passe sur la frame de l'application.
Quelqu'un aurait-il une solution de contournement ?
André.
Code : 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
26
27
28
29
30
31
32
33
34
35
36 unit Unit4; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Ani; type TForm4 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; FloatAnimation1: TFloatAnimation; procedure Button1Click(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var Form4: TForm4; implementation uses windows, Messages; {$R *.fmx} procedure TForm4.Button1Click(Sender: TObject); begin sleep(1000); windows.PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2); end; end.
Partager