Un bug en Pascal
Kakulukiam
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
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
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:
- Un bug en Pascal
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Bug chromecast - Guide
- Iptv bug forum ✓ - Forum Box et Streaming vidéo
3 réponses
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
ç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
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 :
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.
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.
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