Primeiro criaremos a classe, a classe é criada após o uses e antes da implementation, neste caso a classe criada de exemplo sera a Tcheque.
//-------------------------------------------------------------------// // DESCRIÇÃO : CLASSE CHEQUE // //------------------------------------------------------------------// type TCheque = class protected //----- Get e Set procedure SetBanco(const Value: String); function GetBanco:String; procedure SetNumero(const Value: String); function GetNumero:String; procedure SetValor(const Value: String); function GetValor:String; procedure SetFavorecido(const Value: String); function GetFavorecido:String; procedure SetCidade(const Value: String); function GetCidade:String; procedure SetData(const Value: String); function GetData:String; procedure SetVerso(const Value: String); function GetVerso:String;
private //----- Atributos FBanco : String; FNumero : String; FValor : String; FFavorecido : String; FCidade : String; FData : String; FVerso : String;
public property Banco : String read GetBanco write SetBanco; property Numero : String read GetNumero write SetNumero; property Valor : String read GetValor write SetValor; property Favorecido : String read GetFavorecido write SetFavorecido; property Cidade : String read GetCidade write SetCidade; property Data : String read GetData write SetData; property Verso : String read GetVerso write SetVerso;
//----- Metódos Criar e destruir objeto constructor Create; destructor Destroy; //---- end;
Está é a estrutura da classe que irei usar neste exemplo, não irei colocar as funções delas por que não é objetivo deste tutorial mostrar orientação ao objetos, caso haja um interesse futuramente posso postar um artigo mais completo mostrando como trabalhar com POO no Delphi.
Após a criação da estrutura da classe que iremos utilizar, agora vou mostrar como pegar os dados de um DataSet e jogá-los dentro de um array.
Procedure GeraCheques; var ACheques : array of TCheque; // Array de Cheques dinâmico InInd : Integer; // Indice do array begin //----------------------------------------------------// // Cria o Array de Cheques // //----------------------------------------------------// //Primeiro registro DataSet.First; while not DataSet.Eof do begin //Aloca uma posição no array SetLength(ACheques,Length(ACheques)+1); //Pega o indice do ultimo registro que foi alocado InInd := Length(ACheques) - 1; // Crio o objeto ACheques[InInd] := TCheque.Create;
//Insere os valores no objeto ACheques[InInd].Banco := DataSetBAN_IN_NUMERO.AsString; ACheques[InInd].Numero := DataSetATO_ST_CHEQUE.AsString; ACheques[InInd].Valor := FormatFloat('###########0.00',DataSetATO_RE_VALORPAGO.AsFloat); ACheques[InInd].Favorecido := DataSetATO_ST_NOMINAL.AsString; ACheques[InInd].Cidade := Ed_Local.Text; ACheques[InInd].Data := FormataData('dd/mm/yy',DataSetATO_DT_VALIDOPARA.AsDateTime); ACheques[InInd].Verso := Ed_Memo.Lines.Text;
// Pula para o próximo registro DataSet.Next; end; end;
Em muitas situações trabalhar com obejetos diretos na memória se torna viável em ganho de performance, cabe a cada umverificar a utilidade do seu uso.
Nenhum comentário:
Postar um comentário