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 Timer sur appel IntToStr ?


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Timer sur appel IntToStr ?
    Bonjour,

    Dans un projet FireMonkey Win32, je tente d'appeler IntToStr dans l'évènement Tick d'un timer (affichage d'un compte à rebours).

    L'appli plante que ce soit en mode débogage ou en exécution directe de l'exe.

    Mieux, il suffit que l'appel à IntToStr se trouve dans l'évènement, même s'il n'est pas exécuté...

    Cette simple ligne, même si vl_test vaut false fait planter le programme.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if vl_test then system.sysutils.inttostr(0);
    En fait le programme semble planter non pas au moment de l'évènement Tick du timer, mais au moment du Application.Run.

    Même problème avec FloatToStr.

    Si le projet est compilé pour Win 64, aucun problème.

    Quelqu'un sait-il reproduire ? (Delphi XE2 Update 4)

    Merci
    André.

  2. #2
    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
    plait-il ?

    donc je lance XE2 Update4
    je crée un nouveau projet Firemonkey HD
    je place un Timer
    sur le onTimer j'ajoute le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm3.Timer1Timer(Sender: TObject);
    begin
      System.SysUtils.IntToStr(0);
    end;
    je lance

    il ne se passe rien.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 938
    Billets dans le blog
    6
    Par défaut
    Au passage, l'optimisation par le compilateur ne supprime-t-elle pas une telle ligne qui ne sert à rien ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  4. #4
    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
    Ton timer est-il bien enable ? Valeur du tick ? (sur mon exemple 1000 ) Car je reproduis la chose sans probleme. D'ailleurs le simple fait que le programme 32 plante et pas le 64 pose question.

    Precision : delphi installe sur un pc sous seven 64.

    Quelqu'un d'autre ?

  5. #5
    Membre chevronné
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Billets dans le blog
    4
    Par défaut int64tostr
    pour voir ce que ça donne en win32

    Cordialement

    André

    PS je viens d’écrire une bêtise, le type integer est identique en 32 ou 64 bit

  6. #6
    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
    Pour info, l'appli utilise des composants tiers, normalement tout fmx. Mais je viens de voir qu'un de ces composants a une methode qui me renvoie un vcl.graphics.tbitmap au lieu d'un fmx.type.tbitmap. Ce qui pourrait expliquer le comportement curieux si on a du vcl dans du fmx. Cela dit si je supprime ce composant, j'ai le meme souci. J'ai contacte le support a ce sujet et j'attends leur retour.

  7. #7
    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
    Citation Envoyé par sinfoni Voir le message
    Ton timer est-il bien enable ? Valeur du tick ? (sur mon exemple 1000 ) Car je reproduis la chose sans probleme. D'ailleurs le simple fait que le programme 32 plante et pas le 64 pose question.

    Precision : delphi installe sur un pc sous seven 64.

    Quelqu'un d'autre ?
    Seven 64,

    mais tu parles d'un projet qui plante et incrimine l'appel d'une fonction standard dans un Timer, à moins de pouvoir reproduire le bug dans une manip aussi simple que celle que j'ai donné, le support ne te sera d'aucun secours ou t'invitera a supprimer tous les composants tiers.

    de plus tu parles d'un plantage au lancement de l'appli, ce qui n'a aucun rapport avec le code placé dans l'évènement d'un timer, lequel timer n'est pas encore créé !
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  8. #8
    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
    J'ai contacte le support du composant tiers, pas de Delphi.
    Et effectivement, l'appli plante non pas a l'execution du code inttostr mais sur le application.run. Il suffit que je mette le inttostr en commentaire et la plus de souci.

  9. #9
    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,
    Citation Envoyé par sinfoni Voir le message
    Et effectivement, l'appli plante non pas a l'execution du code inttostr mais sur le application.run.
    Avez tenté un débugage pas à pas approfondi pour voir jusqu'où l'application fonctionne ?
    Ou placer des points d'arrêts à différents endroits de la fiche impliquée dans le plantage ?
    --
    Philippe.

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

Discussions similaires

  1. [Débutant] Timer sur appel
    Par Kisper dans le forum C#
    Réponses: 8
    Dernier message: 26/09/2013, 11h29
  2. Bug de IntToHex et IntToStr !
    Par cfdev dans le forum C++Builder
    Réponses: 15
    Dernier message: 30/12/2007, 13h41
  3. [VB.net] Bug submit sur champ de saisie
    Par addicts dans le forum ASP.NET
    Réponses: 8
    Dernier message: 12/07/2006, 10h57
  4. Bug Firefox sur tableau centré dans un div (mauvais refresh)
    Par FrankOVD dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 04/07/2005, 17h47

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