Types incompatibles Integer et PInteger

cs_Kruger Messages postés 68 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 4 octobre 2004 - 26 févr. 2004 à 01:31
cs_Kruger Messages postés 68 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 4 octobre 2004 - 29 févr. 2004 à 19:04
QQn peut me dire où y'a une erreur, comme le dis le titre à la compilation j'ai un message d'incompatibilité:


{==============================================================================}
//            Fonction Inversement ATR
{==============================================================================}
function InversRecept (Buffer : Pinteger) : integer;
var  
   Invert,I: integer;
const
   Tableau : array[0..7] of integer = (128,64,32,16,8,4,2,1);
begin
  Result := 0;
  Invert := not ( Buffer^ );  //Le complément à 1 (inversion bit à bit)
  for I :=0 to 7 do
     if  ( Invert and Tableau[I] <> 0 )then
        Result := Result + Tableau[7-I]; //Bit de poids faible devenu bit de poids fort
end;

{==============================================================================}
//            Procedure ATR
{==============================================================================}
procedure TForm1.Button4Click(Sender: TObject);
var
bufATR:integer;
begin
while ComPort1.InputCount()<>0 do //Faire tant que le buffer n'est pas vide
  begin
    Comport1.Read(BufATR,1);  //Lit 1 octet, le place dans BufATR puis l'efface
    Memo1.Text:=Memo1.Text+(IntToHex((InversRecept(BufATR)),2)+" ");//Affichage
  end;
end; 



L'erreur se trouve au niveau de la ligne où je rempli le memo, le curseur se place là ou j'ai mis des XXX:

Memo1.Text:=Memo1.Text+(IntToHex((InversRecept(BufATR)XXX),2)+" ");//Affichage


Si qqn peut m'aider.
--==[Kruger]==--

2 réponses

Snowboarder69 Messages postés 41 Date d'inscription vendredi 7 février 2003 Statut Membre Dernière intervention 23 juin 2007
27 févr. 2004 à 11:16
Si je ne me trompe pas ( car les pointeur ce n'est pas mon fort):
Buffer : Pinteger definie Buffer comme etant un pointeur vers Integer, d'oû l'utilisation Buffer^ qui veux dire l'objet (le integer ) pointer par buffer.

Il faudrait donc appeler ta fonction non pas avec un Integer en variable mais un Pinteger.

je crois qu'il faut mettre ça:
InversRecept(@BufATR)
0
cs_Kruger Messages postés 68 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 4 octobre 2004
29 févr. 2004 à 19:04
Merci snow, je m 'étais penché sur le probleme et j'avais trouvé, c'etait bien ça.

--==[Kruger]==--
0
Rejoignez-nous