cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 22 sept. 2003 à 21:14
Les méthodes déclarées dans la partie interface de ton unité n'ont pas de correspondance dans la partie implementation : positionne le curseur dans la déclaration de la classe et d'un clic droit, sélectionne "Compléter la classe sous le curseur" (ou Shift+CTRL+C).
En revanche, je ne vois pas le rapport avec HexToBin dans le bout de code que tu exposes ici.
May Delphi be with you
type
TForm1 = class(TForm)
private
{ Déclarations privées }
public
{ Déclarations publiques }
Protected
Procedure SetPin(Adr: Word;Pin:Integer=1);overload;
Procedure SetPin(Adr: Word;Pins:String);overload;
function HexToBin(Adr: Word):Byte;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Procedure TForm1.SetPin(Adr: Word;Pin:Integer=1);
begin
inherited;// ?
end;
Procedure TForm1.SetPin(Adr: Word;Pins:String);
begin
inherited;// ?
end;
function HexToBin(Adr: Word):Byte;
begin
result:=0;// ...
end;
function TForm1.HexToBin(Adr: Word):Byte;
begin
result:=0;// ...
end;
end.
Pour m'a part si je comprends bien la question tu déclares la function HexToBin dans le type TForm1 alors le compilateur recherche à satisfaire TForm1.HexToBin ... sinon tu n'obtiendrais pas ce message !!!
2 ieme point: pourquoi un overload ?
puisqu'il n'y a rien à surchargé inherited ne fait rien du tout ?
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 23 sept. 2003 à 19:39
Sur le deuxième point, je ne suis pas tout à fait d'accord avec yvemoreau :
1/- damomospike déclare deux méthodes portant le même nom dans la portée d'une même classe. La directive overload est donc nécessaire.
2/- Là où tu as raison, c'est l'utilisation du mot clé inherited : comme les méthodes n'héritent d'aucun ancêtre, ce mot clé est absolument inutile.
Je crains qu'il n'y ait eu confusion entre les directives override et overload.
Override : surcharge d'une méthode virtuelle d'une classe ancêtre.
Overload : déclaration d'une procédure de même nom mais recevant des arguments de nature différente.
yvemoreau
Messages postés308Date d'inscriptionmardi 11 juin 2002StatutMembreDernière intervention26 septembre 2008 24 sept. 2003 à 06:30
oui d'accord c'est beaucoup plus clair ainsi et c'est logique ,je n'avais pas remarqué que les 2 avais le même nom ...
donc si je peux investigué davantage ,pourrait-on alors n' "overloadé" qu'une seule de ces 2 procédure ???j'ose croire que oui mais bon pas la peine de répondre je vais faire quelques test ...
le problème c'est que le compilateur ne m'indiquait pas d'erreurs alors je me posais des questions ...