Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // -------------------------------------------------------------------------------------------
- // Objeto responsável para armazenar informações dos produtos
- // -------------------------------------------------------------------------------------------
- TModelProd = class
- private
- FPRECO: Double;
- FDESCRICAO: String;
- FCODPROD: Integer;
- procedure SetCODPROD(const Value: Integer);
- procedure SetDESCRICAO(const Value: String);
- procedure SetPRECO(const Value: Double);
- { private declarations }
- protected
- { protected declarations }
- public
- { public declarations }
- property CODPROD: Integer read FCODPROD write SetCODPROD;
- property DESCRICAO: String read FDESCRICAO write SetDESCRICAO;
- property PRECO: Double read FPRECO write SetPRECO;
- published
- { published declarations }
- end;
- // -------------------------------------------------------------------------------------------
- Tenho FListProd: TList;
- Quero criar o ModelProd na memória e armazenar na lista.
- Exemplo: FListProd.Add(ModelProd);
- Abaixo segue o código utilizado.
- // -------------------------------------------------------------------------------------------
- unit uFrmPrincipal;
- interface
- uses
- System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
- FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
- FMX.Layouts, FMX.Memo, uModelProd;
- type
- TFrmPrincipal = class(TForm)
- btnCriarLista: TButton;
- Memo1: TMemo;
- Panel1: TPanel;
- btnCriarProd: TButton;
- btnCarregarMemo: TButton;
- procedure btnCriarListaClick(Sender: TObject);
- procedure btnCriarProdClick(Sender: TObject);
- procedure btnCarregarMemoClick(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- private
- { Private declarations }
- FListProd: TList;
- public
- { Public declarations }
- end;
- var
- FrmPrincipal: TFrmPrincipal;
- implementation
- {$R *.fmx}
- procedure TFrmPrincipal.btnCriarListaClick(Sender: TObject);
- begin
- if not Assigned(FListProd) then
- FListProd := TList.Create;
- btnCriarProd.Visible := True;
- end;
- procedure TFrmPrincipal.btnCriarProdClick(Sender: TObject);
- Var
- ModelProd: TModelProd;
- iCodProd: Integer;
- begin
- // 1º ITEM
- Inc(iCodProd);
- ModelProd := TModelProd.Create;
- ModelProd.CODPROD := iCodProd;
- ModelProd.DESCRICAO := IntToStr(iCodProd) + '-TESTE';
- ModelProd.PRECO := 20;
- FListProd.Add(ModelProd);
- // 2º ITEM
- Inc(iCodProd);
- ModelProd := TModelProd.Create;
- ModelProd.CODPROD := iCodProd;
- ModelProd.DESCRICAO := IntToStr(iCodProd) + '-TESTE';
- ModelProd.PRECO := 20;
- FListProd.Add(ModelProd);
- // 3º ITEM
- Inc(iCodProd);
- ModelProd := TModelProd.Create;
- ModelProd.CODPROD := iCodProd;
- ModelProd.DESCRICAO := IntToStr(iCodProd) + '-TESTE';
- ModelProd.PRECO := 20;
- FListProd.Add(ModelProd);
- // 4º ITEM
- Inc(iCodProd);
- ModelProd := TModelProd.Create;
- ModelProd.CODPROD := iCodProd;
- ModelProd.DESCRICAO := IntToStr(iCodProd) + '-TESTE';
- ModelProd.PRECO := 20;
- FListProd.Add(ModelProd);
- // 5º ITEM
- Inc(iCodProd);
- ModelProd := TModelProd.Create;
- ModelProd.CODPROD := iCodProd;
- ModelProd.DESCRICAO := IntToStr(iCodProd) + '-TESTE';
- ModelProd.PRECO := 20;
- FListProd.Add(ModelProd);
- btnCarregarMemo.Visible := True;
- end;
- procedure TFrmPrincipal.FormCreate(Sender: TObject);
- begin
- btnCriarLista.Visible := True;
- btnCriarProd.Visible := False;
- btnCarregarMemo.Visible := False;
- end;
- // O ERRO ACONTECE AQUI!!!
- procedure TFrmPrincipal.btnCarregarMemoClick(Sender: TObject);
- var
- I: Integer;
- begin
- Memo1.Lines.Clear;
- for I := 0 to FListProd.Count-1 do
- Begin
- Memo1.Lines.Add(TModelProd(FListProd.Items[i]).DESCRICAO);
- End;
- end;
- end.
- // -------------------------------------------------------------------------------
- FListaProd: TList
- FListaProd: TList<TModelProd>;
Add Comment
Please, Sign In to add comment