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 :

objet avec string et plantage


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 117
    Par défaut objet avec string et plantage
    Bonjour,
    voici mon bout de code
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    type
      MonObj = class(TObject)
      private
      public
      MaChaine : String;
      end;
     
    type
      TForm1 = class(TForm)
        Edit1: TEdit;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
      MonOccurence : MonObj
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
     
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    MonOccurence.MaChaine := 'coucou';
    Edit1.text := MonOccurence.MaChaine;
    end;
    J'ai un plantage, au debug, sur la ligne
    MonOccurence.MaChaine := 'coucou';

    il faut surement que je crée MonOccurence, mais je ne vois pas comment créer une chaine dans un MonObj.create.

    Merci pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 16
    Par défaut
    Il est clair qu'il faut créer (et détruire après utilisation) MonOccurence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      MonOccurence := MonObj.Create;
      MonOccurence.MaChaine := 'coucou';
      Edit1.text := MonOccurence.MaChaine;
      MonOccurence.Free;
    end;

  3. #3
    Membre éclairé Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    641
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 641
    Par défaut
    tant qu'à faire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      MonOccurence := MonObj.Create;
      TRY
       MonOccurence.MaChaine := 'coucou';
       Edit1.text := MonOccurence.MaChaine;
      FINALLY
       MonOccurence.Free;
      END ;
    end;

  4. #4
    Membre émérite
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Par défaut
    Si tu as besoin de MonOccurrence pendant toute la durée de vie de la fenêtre, il faut la créer dans le OnCreate de la fenêtre et la détruire dans le OnDestroy :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      MonOccurrence := MonObj.Create;
    end;
     
    procedure TForm1.FormDestroy(Sender: TObject);
    begin
      MonOccurrence.Free;
    end;
    Bloon

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 117
    Par défaut
    Merci pour votre aide
    Je ne voyais pas comment écrire la fonction MonObj.create.
    En fait, il suffit de l'appeler dans le code, ce qui n'était pas évident, à priori...

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

Discussions similaires

  1. [POO] Instancier un objet avec le nom de la classe
    Par shinchun dans le forum Langage
    Réponses: 4
    Dernier message: 08/06/2006, 13h44
  2. nommer un objet avec une variable
    Par fatcat dans le forum C++
    Réponses: 4
    Dernier message: 11/12/2005, 16h16
  3. Erreur compilation avec <string>
    Par seal3 dans le forum SL & STL
    Réponses: 9
    Dernier message: 25/08/2005, 20h41
  4. [Struts][logic:iterate] Probleme avec String
    Par julienOriano dans le forum Struts 1
    Réponses: 7
    Dernier message: 15/06/2004, 09h39
  5. A propos des modèles d'objet (avec sources)
    Par DevX dans le forum C++Builder
    Réponses: 14
    Dernier message: 01/12/2002, 12h22

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