Exception EAbstract (Urgent!!!)

balgrim Messages postés 52 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 28 octobre 2003 - 21 avril 2003 à 17:12
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 23 avril 2003 à 10:26
G un drole de bug, et je pige pas pkoi... :(

vala le texte:

procedure TForm2.Button2Click(Sender: TObject);
var
Form1:TForm1;
begin
Form1:=TForm1.create(Application);
Form1.Joueur:=User.Text;
Form1.Show;
Free;
end;

vala le bug:

---------------------------
Debugger Exception Notification
---------------------------
Project FinalClient.exe raised exception class EAbstractError with message 'Abstract Error'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

J'ai pensé que ct du au "free" mais meme avec close sa fait toujours le meme probleme...

3 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
21 avril 2003 à 19:54
Une exception EAbstractError signifie que tu essaies d'utiliser une méthode abstraite. Ceci est bien souvent le cas quand on appelle la méthode d'un lointain ancêtre qui est simplement déclarée (avec la directive Abstract) mais non implémentée, le soin en étant laissé aux descendants. Or, ce n'est pas le cas appremment dans le peu de code que tu montres. Le problème vient donc d'ailleurs.

1/- Pourrais-tu indiquer quelle est la fiche principale de ton appli ?

2/- pourrais-tu indiquer le code utilisé pour appeler Form2 à partir de Form1 ?
May Delphi be with you
0
balgrim Messages postés 52 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 28 octobre 2003
21 avril 2003 à 20:06
Eh bien... La form2 est la forme principal, donc je l'appelle pas elle se lance directement...
Ya que 60 lignes de codes pour la form2, et rien que du texte, enfin rien utilisant des pointeurs et autres truc du genre...

Pour la form1 ya dja plus de truc mais la non plus jvoi rien
Parcontre si je Hide la form2 sa me lance la form1, mais si je tente un application.terminate dans la form1, ben sa bug... :(

Enfait je pense que tant que je ne libere pas form2 de la memoire sa marche...
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
23 avril 2003 à 10:26
Je n'ai pas réussi à déclencher l'exception EAbstractError en utilisant le code indiqué.
Seulement, si Form2 est la fiche principale, appeler la méthode Free libère la fiche mais l'objet Application demeure en mémoire, errant à l'infini au milieu des octets.
Sérieusement, faire appel à la méthode Close pour fermer la fiche Form2 ET l'application. Faire appel à la méthode Hide s'il ne s'agit que de cacher la fiche Form2.

Quant à l'exception EAbstractError, elle n'est pas déclenchée là tu le crois.
May Delphi be with you
0
Rejoignez-nous