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

Langage Delphi Discussion :

Problème avec PtInRegion et un tableau dynamique


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 44
    Points : 52
    Points
    52
    Par défaut Problème avec PtInRegion et un tableau dynamique
    Bonjour à tous,

    Je voudrais utiliser la fonction PtInRegion pour déterminer si un point se trouve à l'intérieur d'une "zone" écran.

    Méthode 1:
    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
     
    procedure IsInRegion;
    var
        arPoints : array [0..3] of TPoint;
        R1 : HRGN;
    begin
        arPoints[0] := point(2000, 1000);
        arPoints[1] := point(3000, 1000);
        arPoints[2] := point(3000, 3000);
        arPoints[3] := point(2000, 3000);
        R1 := CreatePolygonRgn(arPoints, 4, WINDING);
        if (PtInRegion(R1, 2000, 2000)) then
            Application.MessageBox('Point 0', 'ptInRegion');
        if (PtInRegion(R1, 2900, 2000)) then
            Application.MessageBox('Point 1', 'ptInRegion');
    end;
    Les messages : 'Point 0' et 'Point 1' sont activés

    Méthode 2 :
    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
     
    procedure IsInRegion;
    var
        arPoints : array of TPoint;
        R1 : HRGN;
    begin
        setLength(arPoints, 4);
        arPoints[0] := point(2000, 1000);
        arPoints[1] := point(3000, 1000);
        arPoints[2] := point(3000, 3000);
        arPoints[3] := point(2000, 3000);
        R1 := CreatePolygonRgn(arPoints, 4, WINDING);
        if (PtInRegion(R1, 2000, 2000)) then
            Application.MessageBox('Point 0', 'ptInRegion');
        if (PtInRegion(R1, 2900, 2000)) then
            Application.MessageBox('Point 1', 'ptInRegion');
    end;
    Aucun message n'est activé.

    Pourquoi obtient-on un résultat différent avec le tableau défini par la méthode 1 et le tableau dynamique définit par la méthode 2?
    (les listes de point du tableau semblent identiques avant d'entrer dans la fonction CreatePolygonRegion)

    Est-il possible de détecter que le point 0 est 'au bord' de la région?

    Merci d'avance pour vos réponses.

  2. #2
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Pour le second code je te suggère ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    R1 := CreatePolygonRgn(arPoints[0], 4, WINDING);
    Effectivement, un tabeau dynamique n'est pas géré de la meme façon qu'un tableau statique.
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 44
    Points : 52
    Points
    52
    Par défaut
    Super! le problème est résolu.


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

Discussions similaires

  1. Problème avec fonction renvoyant un Tableau dynamique
    Par kracter56 dans le forum Débuter
    Réponses: 3
    Dernier message: 12/06/2012, 14h38
  2. problème avec affichage d'un tableau
    Par bandit_debutant dans le forum Collection et Stream
    Réponses: 15
    Dernier message: 29/05/2008, 16h15
  3. Problème de sélection dans un tableau dynamique (gestion des erreurs)
    Par aulilou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/08/2007, 16h38
  4. Difficulté avec "for each" et tableau dynamique
    Par lemordore dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 29/03/2007, 17h48
  5. Problème avec la "Gestion des bibliothèques dynamiques"
    Par GoustiFruit dans le forum Delphi
    Réponses: 15
    Dernier message: 31/05/2006, 09h54

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