Comment et où déclares-tu 'unite' que tu utilises systématiquement dans CalculTerrain?
Car, en admettant qu'unite' soit déclaré et initialisé, je ne vois pas où il évolue. Dans ce cas il reste fixe, donc tu auras toujours la même réponse.
Comment et où déclares-tu 'unite' que tu utilises systématiquement dans CalculTerrain?
Car, en admettant qu'unite' soit déclaré et initialisé, je ne vois pas où il évolue. Dans ce cas il reste fixe, donc tu auras toujours la même réponse.
En fait, je ne comprends pas la question ?
Comment rendre mon code viable ?
merci
Simplement, où délares-tu la variable unite et où l'initialises-tu?
De plus, peut être par manque de lisibilité, je ne vois pas où cette variable évolue, du style:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 case ImageTypeArray[unite] of etplaine : begin Form2.label1.Caption:='plaine' ; end; etroute : begin Form2.label1.Caption:='Route' ;end; etriviere : begin Form2.label1.Caption:='Rivière'; end; etforet : begin Form2.label1.Caption:='Foret' ; end; etuniteb : begin Form2.label1.caption:='unite amie'; end;
J'ai l'impression que cette varaible est constante, mais j'ai peut être mal vue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Inc(unite,untruc); unite := quelquechose;
Personnellement, je ne vois pas comment faire. A votre avis, comment faut déclarer cette variable ?
merci
Il compile ton projet? Car si cette variable n'est pas déclarée, il ne peut pas compiler.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 unite: integer; // Déclaration unite := 1; // Initialisation
En fait oui, il compile, d'où ma surprise
merci
En fait, unite est déclarée dans une autre form. Il y a une form pour la bataille et une seconde pour la description des unités.
La seconde peut être ouverte si on le désire. Et dans cette seconde, est inscrit le nombre de tours, la nature du terrain ...
Comment fait-il faire pour que lorsque l'on clique sur une unité de la form1, soit affiché sur la form2 la nature du terrain ?
merci
Salut
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if unite=2 {par exemple} then form2.calculterrain(Self); // Juste pour te montrer un exemple d'appel.
J'ai regardé votre exemple mais ça ne fonctionne toujprs pas. Pourriez vous me redonner le code complet pour que je puisse avoir une vue d'ensemble. Je commence en effet à me perdre avec tous les exemples que les différentes personnes m'ont donnés.
merci
Bonjour Guiguidu68,
L'équipe de modération du site vous a envoyé un mail perso que vous êtes prié de lire.
Merci
Bidouilleuse Delphi
salut
quelque petit amelioration pour que ton code soit plus clair
si je puit me permettre
creer une methode unique te permetant de placer tes deplacement
le sender de calculterrain ne sert a rien remplace le par l'unite
creer une methode d'obtention du libelle plutot que de l'affecter a chaque fois au caption de ta forme
le jour ou tu decide de refaire la truc sur une autres forme tu comprendra pourquoi
PS j'oublier pour l'initialisation de tes image dans ton formcreate utilise une boucle for
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
47
48
49
50
51
52
53
54
55
56
57 function TForm2.Deflibel(aunite : integer) : String begin case ImageTypeArray[aunite] of etplaine : Result := 'plaine'; etroute : Result := 'Route' ; etriviere : Result := 'Rivière'; etforet : Result := 'Foret' ; etuniteb : Result := 'Unite amie'; end; end; procedure TForm2.calculterrain(aunite : integer) ; begin Form2.label1.Caption := Deflibel(aunite); end; Procedure TForm2.SetDeplaceImageArray(atop,aleft,aunite : integer); Begin Imagearray[aunite].Top:=Imagearray[aunite].Top+ atop; Imagearray[aunite].left:=Imagearray[aunite].left+aleft; calculterrain(aunite); end; procedure TForm2.Button7Click(Sender: TObject); begin SetDeplaceImageArray(15,15,unite); end; procedure TForm2.Button8Click(Sender: TObject); begin SetDeplaceImageArray(0,15,unite); end; procedure TForm2.Button3Click(Sender: TObject); begin SetDeplaceImageArray(-15,15,unite); end; procedure TForm2.Button2Click(Sender: TObject); begin SetDeplaceImageArray(-15,0,unite); end; procedure TForm2.Button1Click(Sender: TObject); begin SetDeplaceImageArray(-15,-15,unite); end; procedure TForm2.Button4Click(Sender: TObject); begin SetDeplaceImageArray(0,-15,unite); end; procedure TForm2.Button5Click(Sender: TObject); begin SetDeplaceImageArray(15,-15,unite); end; procedure TForm2.Button6Click(Sender: TObject); begin SetDeplaceImageArray(15,0,unite); end;
@+ Phil
Blaise PascalNous souhaitons la vérité et nous trouvons qu'incertitude. [...]
Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
PS : n'oubliez pas le tag
re
bon comme je suis sympa voila ce que tu devrait trouver
au bas de ton formcreate
@+ Phil
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 imagetypearray[1]:=etPlaine; For i:= 2 To 21 do imagetypearray[i]:=etUniteb; For i:= 22 To 25 do ImageTypearray[i]:=etRiviere; For i:= 26 To 43 do ImageTypearray[i]:=etuniter; For i:= 44 To 54 do ImageTypearray[i]:=etForet; Form2.label1.Caption:= Deflabel(unite);
Blaise PascalNous souhaitons la vérité et nous trouvons qu'incertitude. [...]
Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
PS : n'oubliez pas le tag
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager