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

 Delphi Discussion :

[D7] Savoir si 2 points sont identiques


Sujet :

Delphi

  1. #1
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 588
    Par défaut [D7] Savoir si 2 points sont identiques
    Bonjour,

    peut on tester 2 points pour savoir s'ils sont identiques sans tester leur Coordonnées car le test direct sur l'égalité des TPoints ne peux pas marcher ?

    A+
    Charly

  2. #2
    Membre expérimenté
    Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 714
    Billets dans le blog
    1
    Par défaut
    Bonjour Charly,

    Il me semble qu'avec TPoint, il n’existe pas d’opérateur d’égalité défini par Delphi, donc tu ne peux pas éviter la comparaison des coordonnées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function SamePoint(const P1, P2: TPoint): Boolean;
    begin
      Result := (P1.X = P2.X) and (P1.Y = P2.Y);
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if SamePoint(P1, P2) then
      ShowMessage('Identiques');
    Après, il existe peut-être une autre solution.
    On ne peut pas faire confiance à un code qu'on n'a pas entièrement écrit soi‑même, et encore moins à celui qu'on a écrit entièrement. :aie:

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 819
    Billets dans le blog
    65
    Par défaut
    Des fonctions de comparaisons (et plus) sont apparues, mais, selon la doc, à partir de XE3 (dans l'unité Types).
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes), D13 (Florence)
    SGBD : Firebird 2.5, 3, 5 et SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Invité de passage
    Homme Profil pro
         ​​​  
    Inscrit en
    Décembre 2025
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité :      ​​​  

    Informations forums :
    Inscription : Décembre 2025
    Messages : 22
    Par défaut
    Un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if Int64(p1) = Int64(p2) then
    Pour éviter la confusion à la lecture de int64 dans le code, on peut créer un nouveau type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    type Rc = type Uint64;
     
      if Rc(p1) = Rc(p2) then

  5. #5
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 588
    Par défaut
    Ok, merci à tous, je vais tester le coup des int64

    A+
    Charly

  6. #6
    Membre chevronné Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 285
    Par défaut
    Peux-être un helper sur le tpoint !

  7. #7
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 588
    Par défaut
    Bonjour,

    oui, merci, ça revient à faire une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function SamePoint(const A, B: TPoint): Boolean;
    begin
      Result := (A.X = B.X) and (A.Y = B.Y);
    end;
    A+
    Charly

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/04/2019, 12h31
  2. [C#] Comment savoir si deux fichiers sont identiques
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 6
    Dernier message: 06/11/2006, 16h59
  3. Savoir si un point est inclus dans un polygone quelconque
    Par SuperBIBI dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 02/08/2005, 20h02
  4. Comment savoir si les ScrollBar sont visibles sur un TRichEdit ?
    Par vanquish dans le forum Composants VCL
    Réponses: 2
    Dernier message: 16/10/2003, 11h28
  5. savoir si 1 point est a l'intérieur d'un cercle ...
    Par skarladevobsy dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 23/05/2002, 19h14

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