obitskater
Messages postés45Date d'inscriptionlundi 29 janvier 2007StatutMembreDernière intervention13 mars 2009
-
30 mai 2007 à 13:03
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 2022
-
30 mai 2007 à 17:02
Bonjour chers compères développeurs.
Voilà, j'ai un petit problème.
Il y a peu, j'ai créé un programme d'exercice de verbes irréguliers en anglais que je compte présenter dans le cadre de mes PTI (pratiques des techniques informatiques) de mon BTS IG.
Ce programme tourne trés bien, mais pour respecter les contraintes de cette épreuve il faut que je le présente en langage objet, c'est pourquoi j'ai décidé de refondre mon code pour créer certaines classes que j'utiliserai (telle qu'une classe "verbe" qui gère toutes les procédures et fonctions propres aux verbes irréguliers).
C'est là que mon problème se pose, comment créer une nouvelle classe dans mon unit? Que ce soit aussi bien au niveau de la déclaration des méthodes publiques et privées, ainsi que où je développe toutes ces méthodes.
obitskater
Messages postés45Date d'inscriptionlundi 29 janvier 2007StatutMembreDernière intervention13 mars 2009 30 mai 2007 à 14:36
Ok autant pour moi, j'avais oublié dans implementation au niveau de la déclaration de la procedure init, il fallait que je mette procedure verbe.init();
une fois que cela est fait, place ton curseur de souris sur "TVerbe" puis clique souris droit > Completer la classe sous le curseur
Delphi vas crée automatiquement les methodes (procedure, fonction) declarée dans l'objet.
soit :
implementation
procedure TVerbe.MethodePrivée;
begin
end;
procedure TVerbe.MethodePrivéeSurchargée;
begin
inherited;
end;
procedure TVerbe.MethodeProtégée;
begin
end;
procedure TVerbe.MethodeProtégéeSurchargée;
begin
inherited;
end;
procedure TVerbe.MethodePublique;
begin
end;
procedure TVerbe.MethodePubliqueSurchargée;
begin
inherited;
end;
remarque bien l'implementation des methodes, elles commencent toujours par le nom de la classe suivie du nom de la methode.
constructor TVerb.Create;
begin
// constructeur principal de la classe, contient l'initialisation vitale de la classe.
fFrench := '';
fEnglish:= '';
end;
constructor TVerb.Create(const VerbFr, VerbEn : string);
begin
// ce constructeur etant un constructeur secondaire, on appel
// le constructeur principal de notre classe (constructeur par default).
// cela evite de recopier inutiliment du code
Self.Create;
fFrench := VerbFr;
fEnglish:= VerbEn;
end;
procedure TVerb.Test;
begin
// une routine de test
end;
procedure init();
begin
showmessage('hello'); //Ceci n'est qu'un test.
end;
end.
Mais quand je compile j'ai un message d'erreur qui me dit :
[Error] ClasseVerbe.pas(17): Unsatisfied forward or external declaration: 'Verbe.init' (au niveau de la ligne en rouge)