Desenvolvimento - Delphi
Criando dinamicamente campos em um componente clientDataSet
O objetivo deste artigo é mostrar todo o dinamismo presente no componente ClientDataSet.
por Vilson MoroO objetivo deste artigo é mostrar todo o dinamismo presente no componente ClientDataSet. Para ilustrar nosso exemplo usaremos dois componentes TEdit , um botão, um componente Dbgrid, um compente ClientDataSet e um componente DataSource.Monte um formulário como o ilustrado abaixo:
O próximo passo é ligar os componentes:
- Na propriedade DataSource do Dbgrid associe Datasource1;
- Na propriedade DataSet do DataSource1 associe ClientDataSet1;
Agora no evento onclick do botão digite o seguinte código:
procedure TForm1.BitBtn1Click(Sender: TObject); begin //verificamos se não tem nenhum field no ClientDataSet if ClientDataSet1.FieldCount = 0 then begin ClientDataSet1.FieldDefs.Clear;//Limpamos campos ClientDataSet1.FieldDefs.Add("Codigo",ftInteger);//adicionamos campos ClientDataSet1.FieldDefs.Add("Endereco",ftString,40,false); ClientDataSet1.CreateDataSet; end; ClientDataSet1.Append;//e inserimos dados ClientDataSet1.Fieldbyname("Codigo").AsInteger := StrToIntDef(EdtCodigo.text,0); ClientDataSet1.Fieldbyname("Endereco").AsString := EdtNome.text; ClientDataSet1.Post; EdtCodigo.Clear; EdtNome.Clear; EdtCodigo.SetFocus; end;
Os dados informados nos componentes Tedit irão alimentar os campos do ClientDataSet e como os componentes estão associados irá espelhar no Dbgrid os dados.Esses dados não refletem consulta de banco de dados, pois não foram armazenados em nenhum banco. Como então esses dados são armazenados? Estão armazenados em cache de dados local do ClientDataSet.
Espero que possa ter contribuído com alguma coisa, nos próximos artigos veremos mais alguma coisa sobre a funcionalidade deste poderoso componente.