Bonjour,
Je débute dans la programmation delphi, en fait, j'en suis dans ma tout première application.
C'est un projet de gestion de formules mathématiques.
Pour ce faire, j'utilise une Tcollection (Tcurvecollection) de courbes (tcurve)
La raison pour laquelle j'ai crée une collection réside principalement dans le fait que je désire facilement enregistrer les informations de courbes dans une Tstream.
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 type Tcurve = class (TcollectionItem) private FAircraftName : string; FCurveDescriptionGeneral : string; FCurveFigureOrigin: string; FCurveItem : string; FCurveItemReferenceValue : real; fa1,fa2,fa3,fa4,fa5,fa6,fb : real; fminrange, fmaxrange : real; fx,fy : real; fInRange: Trange; fidx: integer; Procedure setx (val:real); published property AircraftName : string read faircraftname write faircraftname; property CurveDescriptionGeneral : String read fCurveDescriptionGeneral write fCurveDescriptionGeneral; property CurveFigureOrigin : string read FCurveFigureOrigin write FCurveFigureOrigin; property CurveItem : string read fCurveItem write fCurveItem; property CurveItemReferenceValue : real read fCurveItemReferenceValue write fCurveItemReferenceValue; property a1: real read fa1 write fa1; property a2: real read fa2 write fa2; property a3: real read fa3 write fa3; property a4: real read fa4 write fa4; property a5: real read fa5 write fa5; property a6: real read fa6 write fa6; property b: real read fb write fb; property idx : integer read fidx write fidx; property minrange: real read fminrange write fminrange; property maxrange: real read fmaxrange write fmaxrange; property parameter : real read fx write setX; property result : real read fy; property Inrange : Trange Read fInRange; Function CheckRange (value:real) : TRange; Constructor Create (collection:Tcollection); override; end; type TCurveCollection = class (TOwnedCollection) private function getItem (index:integer): Tcurve; Procedure SetItem (index: integer; val: TCurve); public function Add: TCurve; property Items[index:integer] : Tcurve read getitem write setitem; function GetHighestIDX: integer; function GetItemFromIDX (id:integer): Tcurve; end;
Afin de créer et éditer les propriétés, j'ai crée une fiche avec des Tedit pour chaque property de Tcurve (TcollectionItem)
Je désire maintenant afficher une liste avec toute les entrées de la collection, qui me permettrait, d'en sélectionner une, qui remplirait automatiquement mes Tedit, ce qui me permettrait l'édition.
Pour ce faire, j'ai crée une ListView. Cela ne pose aucun problème à remplir ce listview avec les données existantes de ma collection, mais je ne sais pas comment faire pour, quand je sélectionne une ligne de ma listview, remplir mes tedit avec l'enregistrement tcollectionitem correspondant, ni même comment enregistrer les modifications éventuelles.
Dans ma collectionitem, il y a une propriété IDX, qui est un index unique à cet enregistrement. Le bon procédé serait il de pouvoir enregistrer ce IDX dans une propriété de ListView.items afin de retrouver l'enregistrement correspondant?
Comment faire?
Merci de vos lumières.
Xav.
Partager