Guest User

Untitled

a guest
May 24th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. // -------------------------------------------------------------------------------------------
  2. // Objeto responsável para armazenar informações dos produtos
  3. // -------------------------------------------------------------------------------------------
  4. TModelProd = class
  5. private
  6. FPRECO: Double;
  7. FDESCRICAO: String;
  8. FCODPROD: Integer;
  9. procedure SetCODPROD(const Value: Integer);
  10. procedure SetDESCRICAO(const Value: String);
  11. procedure SetPRECO(const Value: Double);
  12. { private declarations }
  13. protected
  14. { protected declarations }
  15. public
  16. { public declarations }
  17. property CODPROD: Integer read FCODPROD write SetCODPROD;
  18. property DESCRICAO: String read FDESCRICAO write SetDESCRICAO;
  19. property PRECO: Double read FPRECO write SetPRECO;
  20. published
  21. { published declarations }
  22. end;
  23. // -------------------------------------------------------------------------------------------
  24.  
  25. Tenho FListProd: TList;
  26. Quero criar o ModelProd na memória e armazenar na lista.
  27. Exemplo: FListProd.Add(ModelProd);
  28.  
  29. Abaixo segue o código utilizado.
  30.  
  31. // -------------------------------------------------------------------------------------------
  32. unit uFrmPrincipal;
  33.  
  34. interface
  35.  
  36. uses
  37. System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  38. FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
  39. FMX.Layouts, FMX.Memo, uModelProd;
  40.  
  41. type
  42. TFrmPrincipal = class(TForm)
  43. btnCriarLista: TButton;
  44. Memo1: TMemo;
  45. Panel1: TPanel;
  46. btnCriarProd: TButton;
  47. btnCarregarMemo: TButton;
  48. procedure btnCriarListaClick(Sender: TObject);
  49. procedure btnCriarProdClick(Sender: TObject);
  50. procedure btnCarregarMemoClick(Sender: TObject);
  51. procedure FormCreate(Sender: TObject);
  52. private
  53. { Private declarations }
  54. FListProd: TList;
  55. public
  56. { Public declarations }
  57. end;
  58.  
  59. var
  60. FrmPrincipal: TFrmPrincipal;
  61.  
  62. implementation
  63.  
  64. {$R *.fmx}
  65.  
  66. procedure TFrmPrincipal.btnCriarListaClick(Sender: TObject);
  67. begin
  68. if not Assigned(FListProd) then
  69. FListProd := TList.Create;
  70.  
  71. btnCriarProd.Visible := True;
  72. end;
  73.  
  74. procedure TFrmPrincipal.btnCriarProdClick(Sender: TObject);
  75. Var
  76. ModelProd: TModelProd;
  77. iCodProd: Integer;
  78. begin
  79. // 1º ITEM
  80. Inc(iCodProd);
  81. ModelProd := TModelProd.Create;
  82. ModelProd.CODPROD := iCodProd;
  83. ModelProd.DESCRICAO := IntToStr(iCodProd) + '-TESTE';
  84. ModelProd.PRECO := 20;
  85. FListProd.Add(ModelProd);
  86.  
  87. // 2º ITEM
  88. Inc(iCodProd);
  89. ModelProd := TModelProd.Create;
  90. ModelProd.CODPROD := iCodProd;
  91. ModelProd.DESCRICAO := IntToStr(iCodProd) + '-TESTE';
  92. ModelProd.PRECO := 20;
  93. FListProd.Add(ModelProd);
  94.  
  95. // 3º ITEM
  96. Inc(iCodProd);
  97. ModelProd := TModelProd.Create;
  98. ModelProd.CODPROD := iCodProd;
  99. ModelProd.DESCRICAO := IntToStr(iCodProd) + '-TESTE';
  100. ModelProd.PRECO := 20;
  101. FListProd.Add(ModelProd);
  102.  
  103. // 4º ITEM
  104. Inc(iCodProd);
  105. ModelProd := TModelProd.Create;
  106. ModelProd.CODPROD := iCodProd;
  107. ModelProd.DESCRICAO := IntToStr(iCodProd) + '-TESTE';
  108. ModelProd.PRECO := 20;
  109. FListProd.Add(ModelProd);
  110.  
  111. // 5º ITEM
  112. Inc(iCodProd);
  113. ModelProd := TModelProd.Create;
  114. ModelProd.CODPROD := iCodProd;
  115. ModelProd.DESCRICAO := IntToStr(iCodProd) + '-TESTE';
  116. ModelProd.PRECO := 20;
  117. FListProd.Add(ModelProd);
  118.  
  119. btnCarregarMemo.Visible := True;
  120. end;
  121.  
  122. procedure TFrmPrincipal.FormCreate(Sender: TObject);
  123. begin
  124. btnCriarLista.Visible := True;
  125. btnCriarProd.Visible := False;
  126. btnCarregarMemo.Visible := False;
  127. end;
  128.  
  129. // O ERRO ACONTECE AQUI!!!
  130. procedure TFrmPrincipal.btnCarregarMemoClick(Sender: TObject);
  131. var
  132. I: Integer;
  133. begin
  134. Memo1.Lines.Clear;
  135. for I := 0 to FListProd.Count-1 do
  136. Begin
  137. Memo1.Lines.Add(TModelProd(FListProd.Items[i]).DESCRICAO);
  138. End;
  139. end;
  140.  
  141. end.
  142. // -------------------------------------------------------------------------------
  143.  
  144. FListaProd: TList
  145.  
  146. FListaProd: TList<TModelProd>;
Add Comment
Please, Sign In to add comment