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!
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!
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 !
Salut,
Ajoute l'unité où tu exécutes ta commandes dans le Uses de L'implémentation ..
à vrai dire, si tu garde les noms des composants tels qu'ils sont, alors ton Form1 est déclaré dans Unit1
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;
Bonne journée.
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).
Ça entraînerait une erreur de compilation mais pas d'exécution![]()
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 .
Tu parles de la référence circulaire ??a entraînerait une erreur de compilation mais pas d'exécution![]()
Bonne journée.
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)
C'est pourtant une erreur très fréquente !
Partager