Olá galera, nesta Quick Tips, irei mostra como podemos usar o componente DBCtrlGrid localizado na palheta Data Controls, além de incluirmos uma imagem dependendo do valor de um determinado campo do DataSet, para cada registro.
Este componente exibe as informações de um DataSet, como se fosse um DBGrid, porém podemos colocar DBEdits, DBCombobox, e alterar vários registros ao mesmo tempo.
Vamos ver algumas propriedades importantes.
ColCount
Através da propriedade ColCount, podemos informar quantas colunas, de registro, queremos visualizar ao mesmo tempo.
RowCount
Através da propriedade RowCount, podemos informar quantas linhas, de registro, queremos visualizar ao mesmo tempo.
SelectColor
Através da propriedade SelectColor, podemos definir uma cor para o panel que contém o foco.
Vamos construir o exemplo concreto.
Iniciaremos criando e salvando o Form como uFrmPrincipal.pas (FrmPrincipal), e logo em seguida vamos criar um DataModule, e salvar o mesmo como uDM.pas (DM)
DM : adicionaremos os componentes para conexão com uma determinada tabela, no meu caso estou usando o Firebird. Nada lhe impede de usar seu banco de dados.
SQLConnection (DBCtrlGrid )
SQLDataSet (SDSCliente )
DataSetProvider (DSPCliente)
ClientDataSet (CDSCliente )
FrmPrincipal : Adicionaremos os seguintes componentes :
Image (ImgSexo) – Este componente não precisa ficar visível
DBCtrlGrid (DBCtrlGrdDados)
DataSource (DSCliente)
DBGrid(DBGrdDados)
4 DBEdit
4 Label
Veja o resultado final :
Vamos selecionar o DBCtrlGrdDados, e no evento PaintPanel, iremos implementar o seguinte código :
procedure TFrmPrincipal.DBCtrlGrdDadosPaintPanel(DBCtrlGrid: TDBCtrlGrid; Index: Integer);
begin
if DM.CDSCliente.FieldByName('SEXO').AsString = 'M' then
begin
ImgSexo.Picture.LoadFromFile('Imagem\ImgHomem.bmp');
DBCtrlGrdDados.Canvas.Draw(20,6,ImgSexo.Picture.Graphic);
end
else
if DM.CDSCliente.FieldByName('SEXO').AsString = 'F' then
begin
ImgSexo.Picture.LoadFromFile('Imagem\ImgMulher.bmp');
DBCtrlGrdDados.Canvas.Draw(20,6,ImgSexo.Picture.Graphic);
end;
end;
Veja o resultado final ao compilar o projeto :
Como podemos notar, a imagem quando temos um sexo = M, a imagem é a verde, e quando temos um sexo = F, a imagem é a marrom.
Fico por aqui ate à próxima Quick Tips. Baixe o exemplo completo neste post.
Um abraço
Wesley Y
wyamazack@rwsolution.com.br