Bonjour à tous.

(si je n'ai pas posté dans la bonne section, veuillez m'excuser)

Voilà un bout de code sur lequel je bloque depuis plusieurs heures, et ce n'est pas faute d'avoir regardé des tutos...

fichier Unit1.pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
unit Unit1;
 
interface
 
uses
  ...,  Unite;
 
type
  TForm1 = class(TForm)
...
  end;
 
var
...
  U : TUnite;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
...
  U:=TUnite.Create();
end;
 
end.
Fichier Unite.pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
unit Unite;
 
interface
 
uses Contnrs;
 
type TUnite  = class
  public
    nom : String;
    image : string;
    uType : PChar;
    missileForce : integer;
    missile : integer;
    force : integer;
    armure : integer;
    PV : integer;
    taille : integer;
    Lancier : TUnite;
    constructor Create;
    function CompagnieMaxUnite() : integer;
end;
 
implementation
 
constructor TUnite.Create;
begin
  with Lancier do 
  begin
    nom := 'Lancier';           
    image := 'Lancier.bmp';       
    uType := 'InfanterieLegere';    
    missileForce := 0;    
    missile := 0;    
    force := 4;     
    armure := 0;    
    PV := 13;    
    taille := 1;  
  end;
end;
 
function TUnite.CompagnieMaxUnite() : integer;
begin
  CompagnieMaxUnite := 30 div taille;
end;
 
end.
Mon problème est celui-ci :
Dans le premier fichier, unit1.pas, la ligne U:=TUnite.Create(); déclenche une violation d'accès... hors si je ne peux pas construire mon objet, je vais avoir du mal à l'utiliser ^^