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

EDI Delphi Discussion :

Delphi 12 , projet FMX vierge : "division par zéro en virgule flottante"


Sujet :

EDI Delphi

  1. #1
    Membre averti
    Homme Profil pro
    Technicien, secteur de l'énergie.
    Inscrit en
    Novembre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien, secteur de l'énergie.
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 13
    Par défaut Delphi 12 , projet FMX vierge : "division par zéro en virgule flottante"
    Bonjour ,

    difficile de trouver un titre à mon problème...

    Je donne rapidement le contexte :
    Je redécouvre Delphi après un précédent petit projet perso en 2012. Je passe donc sous Delphi 12 sur windows 10 dans une machine virtuelle VirtualBox puisque je suis passé sur Mac il y a pas mal d'années.
    Mon vieux projet étant en VCL, je n'ai aucun problème à le mettre à jour, et je redécouvre le plaisir d'apprendre sous Delphi : )

    Projet fini, bien motivé en a apprendre plus, je créé un projet vierge multiplateforme FMX dans lequel j'insère mon premier objet ( rectangle ).
    Je découvre alors que lorsque je veux modifier certains paramètres de l'objet ( par exemple "fill / Brush " via l'inspecteur ) j'ai l'erreur suivante :
    " Division par zéro en virgule flottante ".

    J'ai supprimé Delphi et refait une installation complète. Le problème est identique.

    Avez vous une idée ?

    par avance, merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 443
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 443
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Je ne pense pas qu'en réinstallant Delphi cela change quoique ce soit
    Je découvre alors que lorsque je veux modifier certains paramètres de l'objet ( par exemple "fill / Brush " via l'inspecteur ) j'ai l'erreur suivante :
    " Division par zéro en virgule flottante ".
    Bon, cela ne nous avance pas beaucoup car nous n'avons aucune informations sur les propriétés modifiées. Quelle propriété serait divisée je n'en voit que deux possible (pas évident de rechercher une division) : SizeFactor ou ScreenScale et je pense que les deux sont dépendant de la plateforme.

    Une copie du .FMX au format texte serait certainement une aide précieuse , en exemple , de base on a ceci
    object Form2: TForm2
    Left = 0
    Top = 0
    Caption = 'Form2'
    ClientHeight = 480
    ClientWidth = 640
    FormFactor.Width = 320
    FormFactor.Height = 480
    FormFactor.Devices = [Desktop]
    DesignerMasterStyle = 0
    object Rectangle1: TRectangle
    Position.X = 216.000000000000000000
    Position.Y = 224.000000000000000000
    Size.Width = 50.000000000000000000
    Size.Height = 50.000000000000000000
    Size.PlatformDefault = False
    end
    end
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre averti
    Homme Profil pro
    Technicien, secteur de l'énergie.
    Inscrit en
    Novembre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien, secteur de l'énergie.
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 13
    Par défaut
    Bonjour et merci d'avoir pris le temps de me répondre.

    Citation Envoyé par SergioMaster Voir le message
    Bonjour,
    Je ne pense pas qu'en réinstallant Delphi cela change quoique ce soit
    Cela peux sembler extrême en effet au premier abord, mais le problème étant apparu sur un projet vierge juste après avoir ajouté les composants FMX, je me suis permis de penser que l'installation après coup n'avait peut être pas été un succès.

    Bon, cela ne nous avance pas beaucoup car nous n'avons aucune informations sur les propriétés modifiées. Quelle propriété serait divisée je n'en voit que deux possible (pas évident de rechercher une division) : SizeFactor ou ScreenScale et je pense que les deux sont dépendant de la plateforme.

    Une copie du .FMX au format texte serait certainement une aide précieuse , en exemple , de base on a ceci
    Voici quelques précisions avec un test effectué à l'instant.
    J'ouvre Delphi 12 et créé un nouveau projet "multi-périphérique" / "application vide" .

    Je me retrouve donc avec le FMX suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    object Form1: TForm1
      Left = 0
      Top = 0
      Caption = 'Form1'
      ClientHeight = 480
      ClientWidth = 640
      FormFactor.Width = 320
      FormFactor.Height = 480
      FormFactor.Devices = [Desktop]
      DesignerMasterStyle = 0
    end
    Je parcours les propriétés avec l'inspecteur d'objets et souhaite par exemple voir ce qui se cache derrière "FILL > Brush " en cliquant sur les "..."
    A ce moment là j'ai le message d'erreur :



    En cliquant sur détails on obtient le rapport d'erreur suivant :

    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
     
    [5FA4042A]{dclfmxstd290.bpl} FMX.Design.Brush.FillGradientTab (Line 171, "FMX.Design.Brush.pas" + 7) + $17
    [6A3B134F]{fmx290.bpl  } FMX.Platform.Win.TPlatformWin.InvalidateWindowRect (Line 3190, "FMX.Platform.Win.pas" + 36) + $7
    [6A385E2D]{fmx290.bpl  } FMX.ExtCtrls.TPopupBox.SetItemIndex (Line 1032, "FMX.ExtCtrls.pas" + 21) + $10
    [5FA40400]{dclfmxstd290.bpl} FMX.Design.Brush.FillGradientTab (Line 166, "FMX.Design.Brush.pas" + 2) + $19
    [6A3EBA73]{fmx290.bpl  } FMX.Controls.TControl.Repaint (Line 3596, "FMX.Controls.pas" + 12) + $A
    [5FA405C5]{dclfmxstd290.bpl} FMX.Design.Brush.TBrushDesigner.FillControls (Line 204, "FMX.Design.Brush.pas" + 5) + $1
    [5FA4125F]{dclfmxstd290.bpl} FMX.Design.Brush.TBrushDesigner.brushListChange (Line 455, "FMX.Design.Brush.pas" + 4) + $2
    [6A369330]{fmx290.bpl  } FMX.ListBox.TCustomListBox.DoChange (Line 3099, "FMX.ListBox.pas" + 2) + $F
    [6A3692C7]{fmx290.bpl  } FMX.ListBox.TCustomListBox.SetItemIndex (Line 3072, "FMX.ListBox.pas" + 17) + $7
    [5FA40956]{dclfmxstd290.bpl} FMX.Design.Brush.TBrushDesigner.SetCurrentBrush (Line 287, "FMX.Design.Brush.pas" + 14) + $A
    [5FA8EAAB]{dclfmxstd290.bpl} FmxReg.TBrushProperty.Edit (Line 109, "FmxReg.pas" + 6) + $D
    [6DA53093]{coreide290.bpl} PropInsp.TPropertyInspector.PropListEditDblClick (Line 1212, "PropInsp.pas" + 20) + $5
    [7039DE59]{vclide290.bpl} IDEInspListBox.TInspListBox.DoEditDblClick (Line 729, "IDEInspListBox.pas" + 2) + $A
    [7039FEE3]{vclide290.bpl} IDEInspListBox.TInspListBox.ListButtonClick (Line 1463, "IDEInspListBox.pas" + 2) + $2
    [705AF69F]{vcl290.bpl  } Vcl.Controls.TControl.Click (Line 8036, "Vcl.Controls.pas" + 9) + $8
    [703938B2]{vclide290.bpl} IDEListBtns.TListButton.WMLButtonUp (Line 692, "IDEListBtns.pas" + 8) + $11
    [705AF146]{vcl290.bpl  } Vcl.Controls.TControl.WndProc (Line 7920, "Vcl.Controls.pas" + 91) + $6
    [707E9043]{vcl290.bpl  } Vcl.Styles.TCustomStyle.SourceLoaded (Line 3317, "Vcl.Styles.pas" + 1) + $13
    [707E8F80]{vcl290.bpl  } Vcl.Styles.TCustomStyle.GetEnabled (Line 3297, "Vcl.Styles.pas" + 0) + $4
    [706BC743]{vcl290.bpl  } Vcl.Themes.TStyleManager.GetIsCustomStyleActive (Line 5869, "Vcl.Themes.pas" + 0) + $7
    [706C0AB5]{vcl290.bpl  } Vcl.Themes.TCustomStyleEngine.HookCBProc (Line 7908, "Vcl.Themes.pas" + 3) + $0
    [706C0C8F]{vcl290.bpl  } Vcl.Themes.TCustomStyleEngine.HookCBProc (Line 7973, "Vcl.Themes.pas" + 68) + $18
    [706C5CE0]{vcl290.bpl  } Vcl.Themes.{System.Generics.Collections}TDictionary<System.TClass,System.Generics.Collections.TList<Vcl.Themes.TStyleHookClass>>.TryGetValue (Line 7981, "System.Generics.Collections.pas" + 1) + $F
    [705B3EDC]{vcl290.bpl  } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 10886, "Vcl.Controls.pas" + 1) + $9
    [706BC7E0]{vcl290.bpl  } Vcl.Themes.TStyleManager.HandleMessage (Line 5891, "Vcl.Themes.pas" + 11) + $11
    [705B47FB]{vcl290.bpl  } Vcl.Controls.TWinControl.WndProc (Line 11154, "Vcl.Controls.pas" + 178) + $6
    [705B3CC0]{vcl290.bpl  } Vcl.Controls.TWinControl.MainWndProc (Line 10823, "Vcl.Controls.pas" + 3) + $6
    [70D5477C]{rtl290.bpl  } System.Classes.StdWndProc (Line 19085, "System.Classes.pas" + 9) + $2
    [70703927]{vcl290.bpl  } Vcl.Forms.TApplication.ProcessMessage (Line 13282, "Vcl.Forms.pas" + 23) + $1
    [7070396A]{vcl290.bpl  } Vcl.Forms.TApplication.HandleMessage (Line 13312, "Vcl.Forms.pas" + 1) + $4
    [70703CA9]{vcl290.bpl  } Vcl.Forms.TApplication.Run (Line 13451, "Vcl.Forms.pas" + 27) + $3
    [00C68AD2]{bds.exe     } bds.bds + $DE

    La même chose se produit en cliquant sur "FILL > Gradient > modifier"
    Sur ce projet vierge, je n'ai pas trouvé d'autre propriété qui génère ce message d'erreur.


    Encore merci, et joyeuses fêtes.
    David.

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 862
    Par défaut
    C'est une erreur de l'IDE en DesignTime, si tu reproduis cela à chaque fois avec un projet vierge, faut faire un ticket sur le portail qualité

    En DesignTime, nous développeurs du forum, on ne peut rien faire pour t'aider, c'est un bug.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre averti
    Homme Profil pro
    Technicien, secteur de l'énergie.
    Inscrit en
    Novembre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien, secteur de l'énergie.
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 13
    Par défaut
    Bonjour,
    merci pour la réponse.

    En effet je reproduis cela à chaque essai.
    Je vais regarder la démarche pour faire un ticket.

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 443
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 443
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Avant toute chose :
    - Il faudrait vérifier l'accès au patch 1 et si possible l'installer.

    - Avant de modifier la couleur d'un gradient, indiquer l'utilisation de celui-ci
    Nom : Capture.png
Affichages : 97
Taille : 21,6 Ko

    Je ne vois aucun rapport de bug ancien à ce sujet : d'ici à ce qu'il s'agisse d'un problème particulier à une machine
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 526
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 526
    Par défaut
    Je vais peut-être dire une bêtise mais vu que ça se passe dans une VM, est-ce que ça ne pourrait pas provenir d'une limite de la carte graphique ?

    Autre piste, sans doute pour Sergio ! Est-ce que FMX ne permet pas d'utiliser un autre système graphique que celui de base dans Delphi 12 FMX ?
    J-L aka Papy pour les amis

  8. #8
    Membre averti
    Homme Profil pro
    Technicien, secteur de l'énergie.
    Inscrit en
    Novembre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien, secteur de l'énergie.
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 13
    Par défaut
    Bonjour,

    Citation Envoyé par SergioMaster Voir le message
    Bonjour,
    Avant toute chose :
    - Il faudrait vérifier l'accès au patch 1 et si possible l'installer.
    Sauf mauvaise manip, j'ai bien installé le patch tout de suite après la ré-installation. Patch datant de juin 2023 de mémoire ..

    - Avant de modifier la couleur d'un gradient, indiquer l'utilisation de celui-ci
    En effet cela semble assez logique, et l'idée m'a donné un bref espoir

    Voici une capture d'écran avec le type de gradient renseigné : "KIND > gradient" puis un clic sur les "..." de "FILL / BRUSH"



    Je ne vois aucun rapport de bug ancien à ce sujet : d'ici à ce qu'il s'agisse d'un problème particulier à une machine
    Citation Envoyé par Papy214
    Je vais peut-être dire une bêtise mais vu que ça se passe dans une VM, est-ce que ça ne pourrait pas provenir d'une limite de la carte graphique ?
    Je vais faire des recherches sur le sujet. La configuration n'est pas très exotique, si c'est la bonne voie il doit bien y avoir quelques autres cas.


    Merci et bonne soirée.

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 443
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 443
    Billets dans le blog
    65
    Par défaut
    @Papy214 je suis assez d'accord avec l'hypothèse d'un pb machine et donc dans ce cas de carte graphique déclarée, toutefois je n'ai jamais eu ce souci avec mes VM


    Est-ce que FMX ne permet pas d'utiliser un autre système graphique que celui de base dans Delphi 12 FMX ?
    Si fait, je pense que tu parles des GlobalUsexxxxxx (comme GlobalUseSkia := True dans le source du projet. J'avoue que , à part Skia, j'ai complètement oublié les autres instructions possibles
    Mais cela s'applique aux applications pas à l'EDI.
    A moins que dans les paramètres de lancement du programme Delphi il y ait quelque chose mais je doute.
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  10. #10
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 673
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Je ne reproduis pas l'erreur rencontrée sur mon poste. Je n'utilise pas de VM, je suis sur un PC équipé de Windows et de Delphi en version 12.2 patch 1.
    Le concepteur de pinceaux s'ouvre bien :
    Nom : capture.png
Affichages : 72
Taille : 36,1 Ko

    Par contre, je n'avais jamais utilisé ce concepteur : je n'avais jamais cliqué sur le bouton "..." de la propriété Fill.
    A chaque fois, je déplie la propriété Fill via le petit chevron ">". On accède ainsi aux mêmes propriétés que via le concepteur de pinceaux.
    La propriété "Kind" permet de sélectionner le type de fond souhaité. En fonction de ce type, vous renseignez ensuite soit la prorpiété Bitmap, Color, Gradient ou Resource. Pour le gradient, vous pouvez double cliquer dans la propriété pour ouvrir l'éditeur de pinceaux positionné directement sur l'onglet "Dégradé". Est ce que cela fonctionne ?

    D'une manière plus générale, est ce qu'en passant par les sous propriétés de Fill (en dépliant Fill dans l'inspecteur d'objet) ça fonctionne ?
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  11. #11
    Membre averti
    Homme Profil pro
    Technicien, secteur de l'énergie.
    Inscrit en
    Novembre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien, secteur de l'énergie.
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 13
    Par défaut
    Bonjour ,

    Citation Envoyé par gbegreg Voir le message
    Bonjour,
    .... Pour le gradient, vous pouvez double cliquer dans la propriété pour ouvrir l'éditeur de pinceaux positionné directement sur l'onglet "Dégradé". Est ce que cela fonctionne ?

    D'une manière plus générale, est ce qu'en passant par les sous propriétés de Fill (en dépliant Fill dans l'inspecteur d'objet) ça fonctionne ?
    Je peux en effet naviguer et modifier les sous propriétés.
    Le double clic sur l'onglet "dégradé" ( équivalent à un clic sur modifier je suppose ) génère en revanche l'erreur.
    C'est donc bien l'ouverture de l'éditeur de pinceau qui n'est pas possible.

    Au fil de vos réponses cela ressemble bien à un problème localisé sur ma machine et il ne n'empêche pas de travailler. (ou plutôt bricoler dans mon cas )
    Je suis en train de réécrire mon programme initialement écris avec VCL, cela me permet de découvrir les différences.

    Encore merci à ceux qui ont pris le temps de s'intéresser à mon sujet.

    david

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/07/2019, 21h27
  2. [WD14] Exception Division par zéro en virgule flottante
    Par KOUADIO SEVERIN dans le forum WinDev
    Réponses: 5
    Dernier message: 24/08/2016, 12h48
  3. Réponses: 6
    Dernier message: 25/10/2013, 13h20
  4. Réponses: 4
    Dernier message: 29/07/2013, 13h05
  5. [QReport] Erreur "division par zero en virgule flottante"
    Par dj_techno dans le forum QuickReport
    Réponses: 6
    Dernier message: 26/09/2008, 19h05

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