Un bug en Pascal

Fermé
Kakulukiam Messages postés 31 Date d'inscription lundi 8 mars 2010 Statut Membre Dernière intervention 11 octobre 2011 - 11 oct. 2011 à 17:27
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 12 oct. 2011 à 12:48
Bonjour,

J'ai déclaré un type dans ma Form principal :

TpPersonnage = record
Nom : String[15];
Classe : String[8];
Niveau : Byte;
ProbTouche : Byte;
Attaque : Byte;
Special : Byte;
PV : Word;
NbrVictoire : Word;
NbrDefaite : Word;
PointsExperience : integer;
AdresseImage : String;
end;

Dans un bouton, je n'ai que cela d'écrit :

procedure TFrmChampionArena.MniNouvPartieClick(Sender: TObject);
var
laPersonnage1 : File of TpPersonnage;
begin
//
end;


Ca ne compile pas.
La ligne (laPersonnage1 : File of TpPersonnage;) est surligné en rouge et le message d'erreur qu'on me donne est :

[DCC Erreur] UTP1MO.pas(74): E2155 Le type 'TpPersonnage' nécessite une finalisation - non autorisé dans le type fichier

D'après les recherches que j'ai fait, ce serait a cause des String. Pourtant, j'ai vus des exemples de fichiers binaires qui utilisait des types contenants des strings et des shortstrings et ca marchait. J'ai essayé de trouvé ce qu'est une finalisation et je ne trouve pas.

Merci de m'aider.

Maxime
A voir également:

3 réponses

nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
11 oct. 2011 à 17:46
C'est pas du pascal, c'est du delphi, et c'est bien d'éviter les doublons !
0
Kakulukiam Messages postés 31 Date d'inscription lundi 8 mars 2010 Statut Membre Dernière intervention 11 octobre 2011 1
11 oct. 2011 à 17:59
Delphi est le nom du programme et le pascal est le language. J'ai reposté pour bénéficier de l'effet "répondre à ce qui n'a pas été répondu" et j'avais vraiment besoin d'aide. Merci encore.
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
12 oct. 2011 à 12:34
Delphi est un logiciel ET un langage de programmation, le langage Delphi est un dérivé du langage Object Pascal lui même dérivé du Pascal, mais ce sont trois langages différents.
Par exemple, une procédure X.Y() signifie que Y est une méthode de la classe X. Or la notion de classe dépend de la programmation objet qui n'a aucun sens en Pascal puisque c'est un langage impératif
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 427
12 oct. 2011 à 11:12
bonjour

ça fait longtemps, mais peut être déclarer avant le type TpPersonnage les types
TpNom = string[15];
TpClasse = string[8]
TpImage = string[à toi de voir]
à utiliser dans ton TpPersonnage

bonne suite
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
12 oct. 2011 à 12:48
Je pense que tu ne peux pas mettre directement file of directement comme ça dans les déclarations. Il faudrait que tu définisses un type pour tes fichiers :

type Fichier : File of TpPersonnage;

procedure TFrmChampionArena.MniNouvPartieClick(Sender: TObject); 
var laPersonnage1 : Fichier;

C'est pareil pour les tableaux array[] of. En fait ce ne sont pas vraiment des types, mais plutôt des constructeurs de types, et ça doit être ça la finalisation.
0