[Delphi] erreur Constructor - Inherited.

erreur Constructor - Inherited. [Delphi] - Delphi/Pascal - Programmation

Marsh Posté le 26-09-2005 à 21:15:31    

Bonsoir :)
 
Je commence avec delphi et je suis bloqué au niveau du CONSTRUCTOR j'ai une erreur de violation d'accès :
 
Pourriez-vous un peu m'éclairer sur ce que j'ai commencé ci dessous ? Merci  :jap:  
 

Code :
  1. unit Unit1;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, StdCtrls;
  6. type
  7.    TForm4 = class(TForm)
  8.     Button1: TButton;
  9.     procedure Button1Click(Sender: TObject);
  10.    
  11.   private
  12.     Fcontenance:double;
  13.     Fcontenu:double;
  14.   public
  15.     CONSTRUCTOR Creation(value:double);
  16.     procedure Remplir(value:double);
  17.     procedure Vider(value:double);
  18.     property contenance:double read Fcontenance;
  19.     property contenu:double read Fcontenu;
  20.   end;
  21. var
  22.   Form4: TForm4;
  23.   Tsac:TForm4;
  24. implementation
  25. {$R *.dfm}
  26.       // CREER L'OBJET
  27. CONSTRUCTOR TForm4.Creation(value:double);
  28. begin
  29.      
  30.       inherited;
  31. end;
  32.       // REMPLIR
  33. procedure TForm4.Remplir(value:double);
  34. begin
  35.       IF ((contenance+value)<=(FContenance)) THEN
  36.       begin
  37.       Fcontenu:=Fcontenu+value;
  38.       end
  39.       ELSE
  40.       begin
  41.       end;
  42. end;
  43.       // VIDER
  44. procedure TForm4.Vider(value:double);
  45. begin
  46. end;
  47. procedure TForm4.Button1Click(Sender: TObject);
  48. begin
  49. Tsac.Creation(15);
  50. end;
  51. end.

Reply

Marsh Posté le 26-09-2005 à 21:15:31   

Reply

Marsh Posté le 26-09-2005 à 22:53:24    

Le problème vient de Tsac.Creation(15);
 
Je n'ai pas encore tout bien cerné mais si j'utilise TForm4.Creation(15); çà fonctionne. Je vais poursuivre un peu je reviendrai la dessus plus tard si quelqu'un peut m'expliquer pourquoi çà m'avancerait :D
 

Reply

Marsh Posté le 27-09-2005 à 10:33:04    

L'instruction

Tsac.Creation(15);

appele la méthode "creation" appartenant à l'objet "Tsac"...qui n'est pas encore créé.  :non:  
 
Pour créer un objet on utilise donc (généralement) l'ordre suivant:
Tsac := TForm4.Creation(15);
 
Ceci n'appele pas la méthode liée à un objet(qui à ce stade n'est qu'un pointeur nul), mais la méthode liée à la classe TForm4 (la classe, elle, existe dès le depart).
 
Tu peut toujours consulter l'aide au chapitre "Méthodes de classe", mais à part pour les constructeur, ça ne sert pas souvent

Reply

Marsh Posté le 27-09-2005 à 11:06:00    

Merci beaucoup zozol c'est plus clair pour moi  :)  
 
 :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed