bonjour a tous les developpeurs
je suis un etudiant en 1ere année dans une ecole d'informatique et j'ai commencé delphi que cette année donc j'espere que vous serez indulgent si je ne comprend pas tout
j'ai plusieurs questions a vous posez par rapport au TStringGrid mais je vais y aller par etape afin que ce soit clair pour vous et pour moi.
le but principal est de faire un editeur de map et j'ai donc utilisé la composante TStringGrid pour gèrer mes cases.
pour l'instant j'arrive a faire en sorte de remplir une case d'une certaine couleur (en fonction si on a choisi herbe,eau,desert ou roche) en cliquant dessus (j'ai pas mal lutter mais j'y suis arrivé).
j'arrive aussi a faire un fichier de sortie qui lorsqu'on enregistre la Map ecrit dans un fichier text les differents parametres de la map qui seront lue par le moteur graphique.
c'est de la forme:
Cases
10
eau
0 0
eau
0 1
eau
0 2
eau
0 3
...
...
...
maintenant mon probleme est que je n'arrive pas a charger convenablement une map
voici mon code:
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 procedure TForm1.chargerClick(Sender: TObject); var Map : TextFile; NomMap,parse: string; nb_cases,x,y : integer; begin if OpenDialog.execute then NomMap := OpenDialog.FileName; AssignFile(Map, NomMap); Reset(Map); Readln(Map); Readln(Map, nb_cases); if nb_cases=petite then begin SG.ColCount:=petite; SG.RowCount:=petite; MAXCOL:=petite; MAXROW:=petite; end else if nb_cases=moyenne then begin SG.ColCount:=moyenne; SG.RowCount:=moyenne; MAXCOL:=moyenne; MAXROW:=moyenne; end else if nb_cases=grande then begin SG.ColCount:=grande; SG.RowCount:=grande; MAXCOL:=grande; MAXROW:=grande; end; while (not EOF(Map)) do begin Readln(Map, parse); Readln(Map,x,y); if parse='herbe' then sg.Cells[x,y]:=inttostr (clgreen); if parse='eau' then sg.Cells[x,y]:= inttostr (clteal); if parse='desert' then sg.cells[x,y]:=inttostr(clmaroon); if parse='pierre' then sg.Cells[x,y]:=inttostr(clsilver); end; CloseFile(Map);
donc le chargement des couleurs se passe parfaitement par contre le petit problème est dans le chargement du nombre de col et de row.
il n'y a pas du tout de modification du TStringGgrid au niveau des col et des row.
j'arrive a modifié dans une procedure buttonclick avec le choix de petite,moyenne ou grande a l'aide d'une checkbox mais j'aimerai bien aussi que le chargement d'une map permette la modification du nombre de collone et de row.
voila pour la 1ere question,j'espere que vous pourrez m'aidez
si quelqu'un a un peu de temps a me consacrer ,il peut me contacter en MP pour que l'on se rejoigne sur msn ou autre et je pourrai lui montrer mes sources afin de mieux comprendre.
desolé pour le code non indenté mais j'ai encore un peu de mal avec l'indentation ^^
Merci a tous d'avance.
xavier
Partager