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

Lazarus Pascal Discussion :

[Lazarus] Objets et références


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut [Lazarus] Access violation
    Bonjour,

    Je développe un jeu de stratégie et de gestion sous Lazarus. Dans une unité Map, j'ai défini les classes TProvince (province) et TSquare (case). Dans une unité Economy, j'ai défini les classes qui représentent l'économie d'une province ou d'une case : TProvinceEconomy, TSquareEconomy, TActivitySector (un secteur d'actvité), Tware (une marchandise).

    Pour définir les secteurs d'activités (ex. Agriculture), je dérive TActivitySector . Un secteur est rattaché à l'économie d'une case. Une marchandise est rattachée à l'économie d'une province.

    L'appel de TSquareEconomy.AddSector() provoque une erreur "Access violation".

    Code complet :
    Unit Map
    Unit Economy

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 047
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    Dans la méthode TSquareEconomy.AddSector, avant d'exécuter pour la première fois FActivitySectors.Add, il me semble qu'il faut avoir initialisé la liste avec FActivitySectors.Create.

    Sinon, je ne vois pas... As-tu essayé avec un debugger ?
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut
    Citation Envoyé par Alcatîz Voir le message
    Bonjour !

    Dans la méthode TSquareEconomy.AddSector, avant d'exécuter pour la première fois FActivitySectors.Add, il me semble qu'il faut avoir initialisé la liste avec FActivitySectors.Create.
    La liste FActivitySectors était bien initialisée. En revanche FSuppliers et FCustomers ne l'étaient pas ! Je m'en veux d'avoir perdu autant de temps sur un problème stupide...

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

Discussions similaires

  1. JavaScript objet (conserver référence)
    Par BRAUKRIS dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/03/2007, 14h51
  2. [POO] Modifier attributs d'un objet par référence
    Par justSam dans le forum Langage
    Réponses: 8
    Dernier message: 22/02/2007, 07h58
  3. retour d'objet par référence...
    Par sas dans le forum C++
    Réponses: 15
    Dernier message: 28/05/2005, 17h54
  4. [JACOB] Comment passer un objet par référence à une méthode
    Par zlavock dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 21/03/2005, 18h28
  5. Réponses: 8
    Dernier message: 26/08/2004, 18h59

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