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 136 137 138 139 140 141 142 143
|
interface
uses System.Generics.Collections, Data.Bind.ObjectScope;
type
TColorisModele = Class;
TListeColoris = TObjectList<TColorisModele>;
TModele = Class
private
FCode : string;
FNom : String;
FPrix : Currency;
// FListeColoris: TListeColoris;
procedure SetCode(const Value: string);
procedure SetNom(const Value: String);
procedure SetPrix(const Value: Currency);
public
constructor Create(sCode, sNom : String; sPrix : Currency);
property Code : String read FCode write SetCode;
property Nom : String read FNom write SetNom;
property Prix : Currency read FPrix write SetPrix;
function GetColoris : TListeColoris;
end;
TColorisModele = Class
private
FCouleur: String;
FCodeModele: String;
procedure SetCodeModele(const Value: String);
procedure SetCouleur(const Value: String);
public
constructor Create(sCodeModele, SCouleur : String);
property CodeModele : String read FCodeModele write SetCodeModele;
property Couleur : String read FCouleur write SetCouleur;
end;
TListeModeles = TObjectList<TModele>;
var ListeModeles : TListeModeles;
UnModele : TModele;
AllColoris : TObjectList<TColorisModele>;
function LoadListe : TListeModeles;
function Coloris : TListeColoris;
implementation
{ TModele }
constructor TModele.Create(sCode, sNom: String; sPrix: Currency);
begin
FCode:=sCode;
FNom:=sNom;
FPrix:=sPrix;
end;
function TModele.GetColoris: TListeColoris;
var AColoris : TColorisModele;
begin
Result:=TListeColoris.Create(False);
for AColoris in AllColoris do
if AColoris.CodeModele=FCode then Result.Add(AColoris);
end;
procedure TModele.SetCode(const Value: String);
begin
FCode := Value;
end;
procedure TModele.SetNom(const Value: String);
begin
FNom := Value;
end;
procedure TModele.SetPrix(const Value: Currency);
begin
FPrix := Value;
end;
function LoadListe : TListeModeles;
begin
Result:=TlisteModeles.Create();
Result.Add(TModele.Create('123456789012','Chemise bucheron',15.40));
Result.Add(TModele.Create('123456789013','Chemise guardian',20.50));
Result.Add(TModele.Create('123456789014','Chemise Mao',18.00));
end;
{ TColorisModele }
constructor TColorisModele.Create(sCodeModele, SCouleur: String);
begin
FCodeModele:=sCodeModele;
FCouleur:=sCouleur;
end;
procedure TColorisModele.SetCodeModele(const Value: String);
begin
FCodeModele := Value;
end;
procedure TColorisModele.SetCouleur(const Value: String);
begin
FCouleur := Value;
end;
function Coloris : TObjectList<TColorisModele>;
begin
Result:=TObjectList<TColorisModele>.Create;
{$REGION Hawai}
Result.Add(TColorisModele.Create('123456789011','Rouge'));
Result.Add(TColorisModele.Create('123456789011','Verte'));
Result.Add(TColorisModele.Create('123456789011','Jaune'));
{$ENDREGION}
{$REGION Mao}
Result.Add(TColorisModele.Create('123456789014','Blanche'));
Result.Add(TColorisModele.Create('123456789014','Noire'));
{$ENDREGION}
{$REGION guardian}
Result.Add(TColorisModele.Create('123456789013','Blanche'));
Result.Add(TColorisModele.Create('123456789013','Noire'));
Result.Add(TColorisModele.Create('123456789013','Jaune'));
Result.Add(TColorisModele.Create('123456789013','Rouge'));
{$ENDREGION}
{$REGION Bucheron}
Result.Add(TColorisModele.Create('123456789012','Rouge'));
Result.Add(TColorisModele.Create('123456789012','Verte'));
{$ENDREGION}
end;
initialization
ListeModeles:=LoadListe;
AllColoris:=Coloris;
UnModele:=TModele.Create('123456789011','Chemise hawaï',14.20);
finalization
ListeModeles.Clear;
end. |