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 :

RichEdit1 marche pas


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 130
    Par défaut RichEdit1 marche pas
    Bonjour,
    j'ai mis ça dans mon code

    Form1.RichEdit1.Lines.Add('coucou');

    Erreur fatale : violation d'accès à l'adresse 00461D88 dans le module Project1.exe. Lecture de l'adresse 00000260
    Je comprends rien à ce charabia, help!

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 940
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Le RichEdit1 fonctionne, pour peu qu'il existe !

    Où est placé le code incriminé ? Quand s'exécute-t-il ? Le RichEdit est-il créé à ce moment ?

    Je pense que la fiche Form1 doit l'être, mais pas le RichEdit.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre expérimenté Avatar de Moez.B
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Mars 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 219
    Par défaut
    Salut,

    Ajoute l'unité où tu exécutes ta commandes dans le Uses de L'implémentation ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    unit Unit2;
     
    interface
     
    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Unit1;
    à vrai dire, si tu garde les noms des composants tels qu'ils sont, alors ton Form1 est déclaré dans Unit1

    Bonne journée.

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 940
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 940
    Par défaut
    Si ce code est dans l'événement OnCreate :
    la fiche principale ne pose généralement pas de problème puisqu'elle est créée par Application.CreateForm() qui assigne la variable (ex .Form1) dès l'allocation mémoire, avant même le constructeur de la fiche. Par contre avec une création du type Form1 := TForm1.Create(), ce n'est qu'au retour du constructeur que la variable est assignée et dans ce cas, VA assurée

    Mais de toute façon, il ne faut jamais faire appel à une variable externe pour référencer l'objet depuis l'une de ses méthodes. Soit ne rien mettre (RichEdit1.Lines.Add('coucou')), soit utiliser self s'il y a une ambiguïté (un with sur un objet possédant une méthode/propriété de même nom).

    Citation Envoyé par Moez.B Voir le message
    Ajoute l'unité où tu exécutes ta commandes dans le Uses de L'implémentation ..
    Ça entraînerait une erreur de compilation mais pas d'exécution

  5. #5
    Membre expérimenté Avatar de Moez.B
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Mars 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 219
    Par défaut
    Form1.RichEdit1.Lines.Add('coucou');

    Sys1 n'a pas indiqué où il fait son appel , et c'est primordial, je suppose que ce n'est pas dans Form1 en tous cas

    Si c'est dans une autre unité, alors il faut référencer l'unité de Form1 dans l'Interface pour pouvoir ce genre d'appel à condition que: Form1 est instancié, RichEdit1 est instancié sinon on est sûr qu'il y a une violation d'accès .

    a entraînerait une erreur de compilation mais pas d'exécution
    Tu parles de la référence circulaire ??

    Bonne journée.

  6. #6
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 940
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 940
    Par défaut
    Une VA est une erreur d'exécution. Si ce code n'était pas dans l'unité où est déclarée Form1 ou si l'unité était absente de la clause uses, le programme ne compilerait pas (E2003)

    Citation Envoyé par Moez.B Voir le message
    je suppose que ce n'est pas dans Form1 en tous cas
    C'est pourtant une erreur très fréquente !

Discussions similaires

  1. 'SHOW TABLES' marche pas sous postgresql !?
    Par fet dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/05/2004, 09h28
  2. Maximiser fenêtre ne marche pas
    Par sandrinec dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/06/2003, 12h02
  3. Réponses: 9
    Dernier message: 07/05/2003, 12h57
  4. [GifDecoder] marche pas dans applet avec IE
    Par formentor dans le forum Applets
    Réponses: 2
    Dernier message: 06/05/2003, 10h43
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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