Bonjour,
J'essaie de comprendre l'unité écrite par Stéphane Vidouse pour l'impression des DBGrid, DataSet et StringGrid et que vous trouverez ici : http://svidouse.developpez.com/impression-grille/.
Je suis confronté à une erreur à la compilation: la partie gauche n'est pas affectable :
J'ai tenté de modifier la procédure ainsi :
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 procedure AjouterUnChamp(Titre : string; Tbl : TClientDataSet; Largeur : integer); const Numero : integer = 0; var Fld : TStringField; Nom : string; begin Fld := TStringField.Create(Tbl); Nom := 'Champ'+inttostr(Numero); with Fld do begin Size := 255; SetFieldType(ftString); Name := Nom; FieldName := Nom; Index := Numero; DisplayLabel := Titre; DisplayWidth := strtoint(formatfloat('0',Largeur)); DataSet := Tbl; end; Numero := Numero + 1; <=== ERREUR ICI end;
A l'exécution du programme, delphi me met : un composant nommé myQRlabelSpec0 existe déjà. Cela n'est pas étonnant puisque à chaque entée dans la procédure la variable numero est remise à 0.
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 procedure AjouterUnChamp(Titre : string; Tbl : TClientDataSet; Largeur : integer); var Numero : integer; <=== MODIFIE ICI Fld : TStringField; Nom : string; begin Numero :=0; <=== MODIFIE ICI Fld := TStringField.Create(Tbl); Nom := 'Champ'+inttostr(Numero); with Fld do begin Size := 255; SetFieldType(ftString); Name := Nom; FieldName := Nom; Index := Numero; DisplayLabel := Titre; DisplayWidth := strtoint(formatfloat('0',Largeur)); DataSet := Tbl; end; Numero := Numero + 1; end;
Comment puis-je faire pour modifier le code sans que cela ne modifie le fonctionnement du programme.
Partager