Bonjour,
Suite à un essai de code, je me trouve à présent avec une erreur (et la non-possibilité de revenir en arrière quand le code fonctionnait ).
Voici le code des deux pages (elles ne sont pas trop longues) qui composent "l'application" (c'est bien prétentieux pour quelqu'un qui débute mais on va dire qu'elle doit finir en application un jour !)
Et la seconde page (celle des objets) :
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135 unit acceuil; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ExtCtrls, StdCtrls, DB, ADODB, objets, ActnList, ComCtrls, strutils; type Tform_main = class(TForm) // Labels lbl_titre: TLabel; lbl_unit_achat: TLabel; lbl_designfourniture: TLabel; lbl_prix: TLabel; lbl_symbeuro2: TLabel; lbl_symbeuro1: TLabel; // Pages de l'application PageControl1: TPageControl; pg_fournitures: TTabSheet; lbl_qtachat: TLabel; // Labels d'affichages lbl_unitachat_affichage: TLabel; // Base de donnée et dataset dst_main: TADODataSet; BDD: TADOConnection; // Label d'affichage importants lbl_qtachat_affichage: TLabel; lbl_prix_affichage: TLabel; lbl_designation: TLabel; // Listes lst_fournitures: TListBox; // Groupbox gbox_changerprix: TGroupBox; Rbtn_TTC: TRadioButton; Rbtn_HT: TRadioButton; Edit_prixfinal: TEdit; btn_modifier: TButton; lbl_changer_unitachat: TLabel; combox_uniteachat: TComboBox; gbox_quantite: TGroupBox; rbtn_qtcompose: TRadioButton; rbtn_qtsimple: TRadioButton; edit_qtcompo_1: TEdit; Combox_multiaddmoins: TComboBox; edit_qtcompo_2: TEdit; edit_qtsimple: TEdit; combox_qtcompo_unite_1: TComboBox; combox_qtcompo_unite_2: TComboBox; edit_designation: TEdit; procedure pg_fournituresShow(Sender: TObject); procedure lst_fournituresClick(Sender: TObject); private { Déclarations privées } public end; var form_main: Tform_main; fonctions : objets.Tfonction; implementation {$R *.dfm} procedure Tform_main.lst_fournituresClick(Sender: TObject); var Compotemp : Tfourniture; UniteTemp : Tunites; indexdiv,i : integer; begin // initialisation des variables et du tableau i := 0; indexdiv :=0; Compotemp := Tfourniture.Create; Unitetemp := Tunites.create; // Affectation des variables inchangée dans la procédure indexdiv := lst_fournitures.ItemIndex; compotemp := Tfourniture(lst_fournitures.Items.Objects[indexdiv]); // Remplissage des labels d'affichage de la Fourniture cliquée lbl_designation.Caption := compotemp.designation; lbl_prix_affichage.Caption := format('%.2f',[compotemp.prixTTC]); lbl_qtachat_affichage.Caption := format('%.2f',[compotemp.nbunite]); // Remplissage du panel pour changer une fourniture rbtn_qtsimple.Checked := True; edit_qtsimple.Text := format('%.2f',[compotemp.nbunite]); edit_designation.Text := compotemp.designation; // Remplissage de la combobox de l'unité d'achat UniteTemp.Trouveunite(compotemp.unite); Showmessage('combobox viendra bientot !'); end; procedure Tform_main.pg_fournituresShow(Sender: TObject); var compo : TFourniture; Unite1 : Tunites; i : integer; begin i := 0; fonctions.ouvrir_data(DST_main,'select * from fournitures'); if dst_main.RecordCount > 0 then Begin for i := 0 to DST_main.RecordCount - 1 do begin // On remplit l'objet normalement compo := TFourniture.Create; compo.remplirfourniture(DST_main); // On remplit la liste de fourniture avec l'objet lst_fournitures.AddItem(DST_main.FieldByName('designation').AsString, compo); DST_main.Next; end; DST_main.Close; i := 0; fonctions.ouvrir_data(DST_main,'select * from unite'); if dst_main.RecordCount> 0 then Begin for i := 0 to DST_main.RecordCount - 1 do begin // On charge les unités dans les combox qui en ont besoin. Unite1 := Tunites.Create; Unite1.remplirunite(DST_main); combox_qtcompo_unite_1.AddItem(DST_main.FieldByName('NomUnite'),Unite1); combox_qtcompo_unite_2.AddItem(DST_main.FieldByName('NomUnite'),Unite1); combox_uniteachat.AddItem(DST_main.FieldByName('NomUnite'),Unite1); DST_main.Next; end; DST_main.Close; End; end; end; end.
Voila, donc si vous voyez où se situe l'erreur que je ne retrouve pas... (j'ai cherché les point-virgules, les différents problèmes qu'il pourrait y avoir et que je connais...) ce serait très gentil.
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132 unit objets; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ExtCtrls, DB, ADODB, math, Menus, strutils, stdctrls; Type TFourniture = class private FPrixTTC: Real; FNbUnite: Real; Fdesignation: string; FUnite: integer; FId: integer; constructor create; //FValeur: integer; public procedure remplirfourniture(datarecord : TADODataSet); published property idfourniture : integer read FId write FId; property designation :string read Fdesignation write Fdesignation; property prixTTC :Real read FPrixTTC write FPrixTTC; property unite :integer read FUnite write FUnite; property nbunite : Real read FNbUnite write FNbUnite; //property valeur : integer read FValeur write FValeur; end; Type Tunites = class private FIDunite: Integer; FNomUnite: string; constructor create; public procedure remplirunite(datarecord : TADODataSet); Function Trouveunite(id: integer) : Tunites; published property IDunite : integer read FIDunite write FIDunite; property NomUnite :string read FNomUnite write FNomUnite; end; Type Tfonction = Class private public // les fonctions function get_chemin(chemin: string): string; // les procédures procedure ouvrir_data(datarecord: TADODataSet; commande: string); Published End; implementation { TFourniture } //-------------- Constructor d'une fourniture ---------------------------------- constructor TFourniture.create; //----------------------------------------------------------------------------- begin inherited Create; idfourniture := 0; designation := ''; prixTTC := 0; unite := 0; nbunite := 0; end; //-------------- Procédure pour remplir un Dataset avec les fournitures -------- procedure TFourniture.remplirfourniture(datarecord : TADODataSet); //------------------------------------------------------------------------------ begin idfourniture := datarecord.FieldByName('Numcompo').AsInteger; designation := datarecord.FieldByName('Designation').AsString; prixTTC := datarecord.FieldByName('PrixTTC').AsFloat; unite := datarecord.FieldByName('unite').AsInteger; nbunite := datarecord.FieldByName('nbunite').AsFloat; end; {Tfonction} //-------------- récupération du répertoire courant --------------------------- function Tfonction.get_chemin(chemin : string):string; //------------------------------------------------------------------------------ begin chemin := reversestring(chemin); chemin := rightstr(chemin, length(chemin) - pos('\',chemin)); chemin := reversestring(chemin); get_chemin := chemin; end; //-------------- Ouverture d'un recordset -------------------------------------- procedure Tfonction.ouvrir_data(datarecord : TADODataSet ; commande : string); //------------------------------------------------------------------------------ begin datarecord.close; datarecord.commandtext := commande; datarecord.open; end; { Tunites } //-------------- Constructor d'un TUnites -------------------------------------- constructor Tunites.create; //------------------------------------------------------------------------------ begin inherited Create; FIDunite := 0; FNomUnite := ''; end; //-------------- Remplissage d'un objet Tunites -------------------------------- procedure Tunites.remplirunite(datarecord: TADODataSet); //------------------------------------------------------------------------------ begin FIDunite := datarecord.FieldByName('N°').AsInteger;; FNomUnite := datarecord.FieldByName('NomUnite').AsString; end; //-------------- Remplissage d'un objet Tunites -------------------------------- Function Tunites.Trouveunite(id: integer) : Tunites; //------------------------------------------------------------------------------ Var datarecord : TADODataSet; begin datarecord.close; datarecord.commandtext := 'select * from unite where N° = ' + inttostr(id); datarecord.open; Trouveunite.FIDunite := datarecord.FieldByName('N°').AsInteger; Trouveunite.FNomUnite := datarecord.FieldByName('NomUnite').AsString; end; end.
En remerciant d'avance les personnes qui prendront la peine de lire ce message.
Ukyuu.
EDIT :
Je l'ai aussi mit en reply mais afin de centraliser l'information je le mets ici aussi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Construction [Pascal Conseil] acceuil.pas(78): H2077 La valeur affectée à 'Compotemp' n'est jamais utilisée [Pascal Conseil] acceuil.pas(77): H2077 La valeur affectée à 'indexdiv' n'est jamais utilisée [Pascal Conseil] acceuil.pas(76): H2077 La valeur affectée à 'i' n'est jamais utilisée [Pascal Erreur] acceuil.pas(125): E2010 Types incompatibles : 'string' et 'TField' [Pascal Erreur] acceuil.pas(126): E2010 Types incompatibles : 'string' et 'TField' [Pascal Erreur] acceuil.pas(127): E2010 Types incompatibles : 'string' et 'TField' [Pascal Erreur fatale] autoentreprise.dpr(9): F2063 Impossible de compiler l'unité utilisée 'acceuil.pas'
Partager