J'ai regardé un peu ton code (enfin, celui que j'ai reformatté), et je me dis qu'il y a quand même un petit problème... de conception.
Et effectivement, j'ai compris l'erreur de compilation.
A quoi il te sert ton objet ? Pourquoi tu passes un tableau à une des méthodes de l'objet, alors que tu l'as déjà dans l'objet, le tableau en question. A mon avis, le code correct aurait été de définir 2 objets : un "Vehicule" et un "StockVehicule", comme suit :
Code :
- unit bibstock;
- interface
- uses crt, drivers;
- const maxStock = 500;
- type cVehic = object
- modele : string[20];
- marque : string[20];
- immatr : string[20];
- anImmatr : integer;
- prixVente : real;
- procedure saisie;
- end; { object }
- type cStockVehic = object
- stock : array[1..maxStock] of stockVehic;
- numVehic : integer;
-
- procedure saisieTab;
- procedure affichSuivModel;
- procedure affichSuivPrix;
- procedure insert;
- procedure delete;
- end; { object }
- implementation
- procedure cVehic.saisie;
- begin
- write ('MODELE : '); readln (self.modele);
- write ('MARQUE : '); readln (self.marque);
- write ('IMMATRICULATION : '); readln (self.immatr);
- write ('ANNEE D''IMMATRICULATION : '); readln (self.anImmatr);
- write ('PRIX DE VENTE : '); readln (self.prixVente);
- end; { cVehic.saisie }
- procedure cStockVehic.saisieTab;
- var fin : boolean;
- rep : string;
- begin
- fin := false;
- self.numVehic := 0;
- repeat
- Inc (self.numVehic);
- self.stock[self.numVehic].saisie;
- if (self.numVehic < maxStock) then begin
- repeat
- write ('Voulez-vous référencer un autre véhicule ? (O/N) ');
- readln (rep);
- until (rep='O') or (rep='o') or (rep='n') or (rep='N');
- fin := ((rep='n') or (rep='N'));
- end
- else begin
- fin := true;
- end; { if }
- until (fin);
- end; { cStockVehic.saisieTab }
- end. { unit }
|
Mes souvenirs de Pascal sont très lointains, et j'ai arrêté de programmer en Pascal au moment où les extensions objet sont sorties. Donc je ne suis pas 100% sûr que c'est "self" qu'il faut utiliser, mais si ce n'est pas ce mot-là, le mot réservé qui fait la même chose ne doit pas être très différent (par exemple, d'autres langages comme C++ ou Java utilisent "this" pour cet usage).
[edit]--Message édité par BifaceMcLeOD--[/edit]