Manipulação dos dados digitados
As colunas criadas já possuem um tratamento interno dos dados digitados pelo usuário, no entanto, a depender da necessidade este comportamento pode ser substituído em parte ou totalmente.
Quando o tratamento utilizado for o tratamento padrão, os dados digitados pelo usuário poderão ser acessados através da propriedade Valores (deverá ser usado um typecast para TDataSet). Este dataset irá possuir os campos Coluna, NewChave e Valor. Onde o campo Coluna irá conter o nome da coluna no formato: NomeDaView + VSCOLDYN_ + NomeDaColuna (sem espacos, acentos e cedilha). O campo NewChave irá conter a chave do registro, seja a chave natural, seja a chave definida no parâmetro CamposChave.
Quando for necessário realizar o tratamento manual dos dados digitados pelo usuário, deverão ser utilizadas as propriedades EventoAlterouValorNoGrid e EventoMostrarValorNoGrid;
Exemplos de utilização:
Uses
Classes, Graphics, Controls, Forms, Dialogs, CxGridCol, DB;
var
col1 : TcxGridColuna;
col2 : TcxGridColuna;
col3 : TcxGridColuna;
col4 : TcxGridColuna;
col5 : TcxGridColuna;
col6 : TcxGridColuna;
col7 : TcxGridColuna;
col8 : TcxGridColuna;
col9 : TcxGridColuna;
Valores : TStringList;
procedure MeuMostrarValorNoGrid(AChave : String; var ATexto: String);
begin
// Utiliza a AChave para localizar um valor e retorna o mesmo para ser
// mostrado no grid
ATexto := Valores.Values[AChave];
end;
procedure MeuAlterouValorNoGrid(AChave, ATexto: String);
begin
// Utiliza o campo AChave para guardar o valor que o usuário digitou
Valores.Values[AChave]:= ATexto;
procedure MeuOnExecute(Sender : TObject);
begin
if TDataSet(col1.Valores).RecordCount > 0 then
begin
ShowMessage('Existem ' + IntToStr(TDataSet(col1.Valores).RecordCount) +
' a serem salvos!!');;
end;
inherited(Sender, 'OnExecute');
end;
procedure MeuButtonClick(AButtonIndex : String; var Retorno : String);
begin
if MessageDlg('Deseja Retornar data e hora?', mtWarning,
SetOf([mbYes, mbNo]), 0) = mrYes then
Retorno := FormatDateTime('hh:nn:ss:zzzz', Now);
end;
begin
ActSalvar.OnExecute := 'MeuOnExecute';
Valores := TStringList.Create;
col1 := TcxGridColuna.Create(ViewFormaPagamento, 'String éíóúçâ', 'String' , 5,
'FORMAPGTO');
col1.Largura := 200;
col1.EventoAlterouValorNoGrid := 'MeuAlterouValorNoGrid';
col1.EventoMostrarValorNoGrid := 'MeuMostrarValorNoGrid';
col2 := TcxGridColuna.Create(ViewFormaPagamento, 'Número', 'Numero', 0,
'FORMAPGTO');
col2.Decimais := 2;
col3 := TcxGridColuna.Create(ViewFormaPagamento, 'Boolean', 'Boolean', 0,
'FORMAPGTO');
col4 := TcxGridColuna.Create(ViewFormaPagamento, 'Inteiro', 'Inteiro', 0,
'FORMAPGTO');
col5 := TcxGridColuna.Create(ViewFormaPagamento, 'EditButton', 'ButtonEdit', 0,
'FORMAPGTO');
col5.EventoClicouBotao := 'MeuButtonClick';
col6 := TcxGridColuna.Create(ViewFormaPagamento, 'Combo', 'Combo', 0,
'FORMAPGTO');
col6.Itens := 'Item 1;Item 2;Item 3';
col6.Largura := 80;
col7 := TcxGridColuna.Create(ViewFormaPagamento, 'Data', 'Data', 0,
'FORMAPGTO');
col7.Largura := 100;
col8 := TcxGridColuna.Create(ViewFormaPagamento, 'Hora', 'Hora', 0,
'FORMAPGTO');
col8.Largura := 100;
col9 := TcxGridColuna.Create(ViewFormaPagamento, 'Data e Hora', 'DataHora', 0,
'FORMAPGTO');
col9.Largura := 150;
end;
end;