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 tableaux dynamiques et procédure


Sujet :

Langage Delphi

  1. #1
    K20
    K20 est déconnecté
    Membre confirmé
    Profil pro
    Ingé DevOps
    Inscrit en
    Novembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingé DevOps

    Informations forums :
    Inscription : Novembre 2005
    Messages : 183
    Par défaut Problème avec tableaux dynamiques et procédure
    Bonjour à tous !
    Voilà j'ai un gros problème avec des tableaux dynamiques et j'y arrive pas

    J'ai 3 unités : moteur_graphique_map (unité principale), moteur_graphique_parseur et moteur_graphique_draw_object.

    Mon fichier moteur_graphique_parseur parse un fichier .obj qui est d'un type que j'ai défini.
    Ensuite, je récupère mon tableau que j'applique à une procédure qui est dans moteur_graphique_draw_object.

    Et les procédures sont utilisées dans moteur_graphique_map.

    Voici la définition de mes types qui est dans moteur_graphique_draw_object et moteur_graphique_parseur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    type
      TVertex = Record
        gl : integer;
        x, y, z, r, g, b, a : real;
        texture : string;
      end;
     
      TabVertex = array of TVertex;
    Les déclarations de mes procédures :
    dans moteur_graphique_parseur : avec la variable global de mon tableau qui sera utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var
      Vertex : TabVertex;
     
    function Parseur_map(NomObj : string) : integer;
    moteur_graphique_draw_object :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure draw_object(vecteur: TabVertex; nb_vecteur:integer; coord_x,coord_y:double);
    Et enfin là où j'utilise mes procédure dans moteur_graphique_map :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {------------------------}
          // Afficher une maison //
          {------------------------}
          Nb_vertex := Parseur_map('Objets/maison1.obj');
          draw_object(Vertex,Nb_vertex,20,20);
    Et quand je veux compiler j'obtiens cette erreur :
    [Erreur] moteur_graphique_map.pas(358): Types incompatibles
    Sachant que la ligne 358 c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    draw_object(Vertex,Nb_vertex,20,20);
    et c'est Vertex qui bloque

    Je ne comprend pas, se sont les mêmes types et ça bloque ...

    Aidez moi
    Merci d'avance

  2. #2
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Tu passes un Type TVertex, a une procedure draw_object qui attends un TabVertex.

    C'est comme si tu passais un string à la place d'un integer (en gros).

    Edit : excuses, j'avais mal vu --> tu fait bien comme il faut de ce côté là.

    Edit2 : j'ai trouvé, voir post qui suit.

  3. #3
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Voilà une solution à essayer :

    Déclares tes variables et procédures qui suivent comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var
      Vertex : array of TVertex;
     
    ...
     
    procedure draw_object(vecteur: array of TVertex; nb_vecteur:integer; coord_x,coord_y:double);
    Là, ça devrait être bon ;p

  4. #4
    K20
    K20 est déconnecté
    Membre confirmé
    Profil pro
    Ingé DevOps
    Inscrit en
    Novembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingé DevOps

    Informations forums :
    Inscription : Novembre 2005
    Messages : 183
    Par défaut
    Si c'était si facile ça aurait été trop beau

    J'ai déjà essayé, ça me met une autre erreur :
    [Erreur] moteur_graphique_map.pas(358): Types incompatibles : 'Array' et 'dynamic array'
    ...

  5. #5
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Là je sêche

  6. #6
    bjl
    bjl est déconnecté
    Membre chevronné Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Par défaut
    comment sais tu que c'est vertex qui bloque ?

  7. #7
    K20
    K20 est déconnecté
    Membre confirmé
    Profil pro
    Ingé DevOps
    Inscrit en
    Novembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingé DevOps

    Informations forums :
    Inscription : Novembre 2005
    Messages : 183
    Par défaut
    Car j'ai essayé de mettre les paramètres sur des lignes différentes et que c'était la ligne du Vertex qui plantait

    (et puis je vois pas pourquoi le type integer planterait ^^)

  8. #8
    bjl
    bjl est déconnecté
    Membre chevronné Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Par défaut
    fais tu des modifs sur vartex dans draw_object ?


    personellement, j'aurais plutôt passé un pointeur sur TabVertex en paramètre.

  9. #9
    K20
    K20 est déconnecté
    Membre confirmé
    Profil pro
    Ingé DevOps
    Inscrit en
    Novembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingé DevOps

    Informations forums :
    Inscription : Novembre 2005
    Messages : 183
    Par défaut
    J'ai trouvé
    Ce que j'ai fait une nouvelle unité que j'ai nommé type_graphique
    Et dedant j'ai seulement mis la définition de mon type ^^

    Ensuite j'apelle cette unité dans mes 2 autres unités et plus d'erreur
    En fait pour lui c'était des types différents

    (bon j'ai encore une erreur mais ça vient d'autre chose dans mon programme )

    Merci pour votre aide !!

  10. #10
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 489
    Par défaut
    salut

    tu aurait du precisez que tu declare deux fois le type
    on aurait evite de chercher

    bon c'etait pour ca que j'intervient tu peut mettre le tag resolue

    @+ Phil

  11. #11
    K20
    K20 est déconnecté
    Membre confirmé
    Profil pro
    Ingé DevOps
    Inscrit en
    Novembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingé DevOps

    Informations forums :
    Inscription : Novembre 2005
    Messages : 183
    Par défaut
    C'était juste à cause de ça ??

    ça lui plait pas que je déclare 2 fois le type ? Mais je fais comment si je l'utilise dans mes 2 unités ?

  12. #12
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 489
    Par défaut
    salut

    tu creer une troisieme unite
    ou tu appel l'une des unite ayant le type declarer
    dans la parti implementation

    @+ Phil

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/12/2006, 09h57
  2. problème avec tableau dynamique
    Par akrobat dans le forum C++
    Réponses: 7
    Dernier message: 28/04/2006, 15h29
  3. Problème avec menus dynamiques
    Par narwydann dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/04/2006, 15h28
  4. [MySQL] [BDD] Problème avec SELECT "dynamique"
    Par Vecine dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/03/2006, 11h11
  5. [D2005]Problème de tableaux dynamique
    Par Laurent Dardenne dans le forum Delphi .NET
    Réponses: 8
    Dernier message: 26/07/2005, 11h56

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