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

C++Builder Discussion :

[Asphyre] Propriété de type tableau non supportée [Non suivi]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par défaut [Asphyre] Propriété de type tableau non supportée
    Bonjour,
    j'essaie d'installer les composants de asphyre dans BCB6 mais j'ai un bug que je n'arrive pas à régler.
    Il y a une propriété qui pose problème :
    Je met le début du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    type
     TAsphyreMatrix = class
     private
      FRawMtx: TMatrix4;
     
     public
      property RawMtx: TMatrix4 read FRawMtx write FRawMtx;
    TMatrix4 étant un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TMatrix4 = array[0..3, 0..3] of Single;
    hors, j'obtiens le code d'erreur suivant :
    [Pascal Erreur] AsphyreMatrix.pas(303): Fonctionnalité de langage non supportée : 'propriété de type tableau'
    Comment faire? Il y a un autre type proche de celui la pour mettre en property ou faut-il le mettre autrement qu'en property?

    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Par défaut
    Hello

    Peut-être passer outre les définitions de propriétés:
    tu redéclares FRawMtx en public, tu vires les property et tu corriges les appels à RawMtx pour en faire des appels à FRawMtx (ou bien tu renommes FRawMtx en RawMtx, comme ça t'arrange)

    Après si tu as des propriétés du style property Toto: tableau read GetToto write SetToto; :
    vire le property, remets les GetToto/SetToto en public, et renommage des appels à Toto....

    Ca fait pas très propre, mais bon....

    Bon courage

  3. #3
    Membre éclairé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par défaut
    Merci, cela ne pose pas de problème quand les propriété ne font pas appel à des fonctions mais quand il y a un set ou un get, cela pose problème.

    Il n'y a pas une méthode plus propre? et pourquoi en delphi il y a des propriété de type tableau et que c++builder n'arrive pas à les prendre en compte?

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Par défaut
    Hello

    Ca fait partie des différences entre le Pascal Objet et le C++... cf l'aide de Builder: "Gestion de la VCL en langage C++" / "Types sans correspondants".....

    Dans les parties de code en Pascal, si la propriété Toto est référencée et passée en paramètre à une fonction sous forme de référence (mot clé var), alors oui, il rique d'y avoir un problème. Si elle est passée par valeur, remplace Toto par GetToto dans l'appel...
    Merci, cela ne pose pas de problème quand les propriété ne font pas appel à des fonctions mais quand il y a un set ou un get, cela pose problème.
    Quel problème ???

  5. #5
    Membre éclairé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par défaut
    Comme je le disais, si :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    type 
     TAsphyreMatrix = class 
     private 
      FRawMtx: TMatrix4; 
     
     public 
      property RawMtx: TMatrix4 read FRawMtx write FRawMtx;
    Devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public 
      RawMtx: TMatrix4;
    Cela fonctionne mais certaines propriété font appel à des fonctions. Donc, j'essaie sur ce fichier simple pour voir si votre astuce fonctionne et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     private
      FRawMtx: TMatrix4;
     
      function GetRawMtx(): TMatrix4;
      procedure SetRawMtx(const Value: TMatrix4);
     public
      property RawMtx: TMatrix4 read GetRawMtx write SetRawMtx;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //--------------------------------------------------------------------------
    function TAsphyreMatrix.GetRawMtx(): TMatrix4;
    begin
     Result:= FRawMtx;
    end;
     
    //--------------------------------------------------------------------------
    procedure TAsphyreMatrix.SetRawMtx(const Value: TMatrix4);
    begin
     FRawMtx:= Value;
    end;
    BCB m'indique toujours que les propriétés de type tableau ne sont pas supportées.

  6. #6
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Par défaut
    Hello

    Cherche dans le code les appels à la propriété .RawMtx, et remplaces les par des appels à .GetRawMtx (supprime le property RawMtx)

    Exemple, si tu as (comme ça, au pif )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    property ViewMtx: TMatrix4 read GetViewMtx write SetViewMtx;
    property ProjMtx: TMatrix4 read GetProjMtx write SetProjMtx;
    ...
    SetTransform(Camera.ViewMtx, Camera.ProjMtx);
    Ca devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //property ViewMtx: TMatrix4 read GetViewMtx write SetViewMtx;
    //property ProjMtx: TMatrix4 read GetProjMtx write SetProjMtx;
    ...
    SetTransform(Camera.GetViewMtx, Camera.GetProjMtx);
    Bonne continuation

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 01/02/2006, 12h00
  2. variable type tableau (vector) statique / constants
    Par Kaktus dans le forum SL & STL
    Réponses: 5
    Dernier message: 13/10/2005, 22h46
  3. [CR XI] export vers word d'un crystal de type tableau
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 26/07/2005, 22h52
  4. Réponses: 6
    Dernier message: 12/10/2003, 14h57
  5. Fonction de type tableau
    Par Charles f dans le forum Langage
    Réponses: 5
    Dernier message: 04/08/2002, 14h04

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