Bonjour,
Je souhaite faire un composant reprenant le principe des collections.
Je me suis donc inspiré du tutoriel suivant http://sjames.developpez.com/ListesCollections.pdf
Je rencontre un problème lors de la compilation.
sur cette ligneE2010 Types incompatibles : 'TPersistent' et 'Class reference'
Voici mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 constructor TCmpStats.Create(Stat: TspStat); begin inherited Create(TCmpStatItem); FComponent := Stat; end;
CmpStats hérite de TOwnedCollection qui descend de TPersistent.
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 TCmpStatItem = class(TCollectionItem) private FName: String; procedure SetName(const Value: String); protected Function GetDisplayName: String; Override; published property Name: string read FName write SetName; public constructor create; destructor destroy; end; TCmpStats = class; TspStat = Class(TComponent) private FItems: TCmpStats; procedure SetItems(value : TCmpStats); public constructor Create(AOwner : TComponent); override; destructor Destroy; override; published property Item: TCmpStats read FItems write SetItems; End; TCmpStats = class( TOwnedCollection) private FComponent : TspStat; function GetItem(Index: Integer): TCmpStatItem; procedure SetItem(index: Integer; Value : TCmpStatItem); public constructor Create(Stat : TspStat); function Add : TCmpStatItem; property Items[Index : Integer]: TCmpStatItem read GetItem write SetItem; default; end;
De coup, je ne comprend pas le problème, ni comment faire pour le résoudre.
Si quelqu'un a déjà eu ce genre de problème, je suis preneur pour les explications.
Merci
Partager