IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants FMX Delphi Discussion :

Bug de refresh : Solution de contournement existe-elle ?


Sujet :

Composants FMX Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Par défaut Bug de refresh : Solution de contournement existe-elle ?
    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.
    Fichiers attachés Fichiers attachés
    • Type de fichier : zip pb.zip (3,3 Ko, 87 affichages)

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Par défaut
    Bonjour,

    Euh comment dire ?

    Sous XP SP3 32 bits à jour de correctifs avec un portable P4 2,3 Ghz 1 Go Ram, GeForce 5200, et Delphi XE2 Upd4, je ne constate pas de défaut au retour de veille, provoquée ou pas. L'animation est toujours là...

    Problème de pilote graphique ou autres ?
    --
    Philippe.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Par défaut
    Sur seven 64, reproductible sur 4 machines différentes. Dont un PC de jeu à base de GTX 560 avec les derniers pilotes à jour et un portable Asus "standard". Donc non, pas de souci de pilote.

    Je n'ai pas testé sur du XP mais j'en ai encore un sous la main. Je vérifie pour cet OS dès demain et rapporte mon test.

  4. #4
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Chez moi j'ai aussi le problème, c'est un bug avec Direct2D, tu peux le contourner en désactivant Direct2D.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    initialization
      GlobalUseDirect2D := False;
    end.
    Sinon il faut trouver le code invoqué pour restaurer Direct2D, il doit être erroné...mais difficile à localiser vu que l'écran est tout noir

    Dans le même genre tu dois donc avoir un problème si tu places un TPath sur ta fiche et que dans Data.Data tu mets 'Z', tu vas te retrouver avec une fiche toute noire comme expliqué ici. C'est un bug dans la séquence d'appel des fonctions Direct2D qui passe sur certaines cartes et pas d'autres.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Par défaut
    @ Ph. B. : Effectivement pas reproductible sur XP.
    @ Paul TOTH : Yes ! Ca marche ! Un immense merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 03/01/2013, 12h07
  2. Bug du refresh sur un TPanel
    Par JC-LGMS dans le forum Delphi
    Réponses: 14
    Dernier message: 20/06/2006, 13h30
  3. [XML fonctions] Existent - elles?
    Par Jean_Benoit dans le forum Oracle
    Réponses: 2
    Dernier message: 10/06/2006, 20h35
  4. [VB5] Propriété Parent du usercontrol : existe -elle en VB 5 et s
    Par lapinot dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 19/09/2005, 09h36
  5. Réponses: 9
    Dernier message: 12/12/2004, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo