StringGrid no formato Excel - Parte 01

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (3)  (2)

Neste artigo iremos construir um pequeno aplicativo utilizando a orientação a objeto e um StringGrid, que será o responsável pela visualização dos dados do objeto de uma forma totalmente inovadora.

     Olá a todos os apaixonados pelo Delphi. Nesta primeira parte do artigo, estaremos criando e implementando o nosso formulário que será o responsável pela exibição dos dados do nosso objeto Clientes. Então, mãos a obra.
     Vá em File -> New -> Application e inicie uma nova aplicação. Salve-a como o nome de PrjStringGrid e a Unit como nome de UntStringGrid. Adicione ao formulário um StringGrid, um Edit, um RadioGroup e dois BitBtn´s. Renomeie e altere as propriedades dos componentes inseridos no formulário conforme abaixo:
 
Form1
  • Name = FUntStringGrid
  • BorderStyle = bsSingle
  • BorderIcons = biMinimize = False; biMaximize = False
  • KeyPreview = True
  • Position = poScreenCenter

BitBtn1

  • Caption = &Incluir Cliente
  • Name = BtInclui
  • Width = 140
  • Glyph = à sua escolha

BitBtn2

  • Caption = &Mostra Clientes
  • Name = BtMostraClientes
  • Width = 140
  • Glyph = à sua escolha

StringGrid1

  • Name = GridEstudos
  • DefaultRowHeight = 17
  • Ctl3D = False
  • RowCount = 02
  • ColCount = 02
  • FixedCols = 00
  • FixedRows = 01
  • DefaultDrawing = True //Está propriedade será fundamental para o nossos próximos artigos, deixe-a por enquanto como True.

Edit1

  • Name = EdtNome
  • BevelKind = bkFlat
  • BorderStyle = bsNone
  • Color = clInfoBk

RadioGroup1

  • Name = Sexo
  • Columns = 02
  • Items = Feminino; Masculino

     Depois de ter renomeado todos os seus componentes, coloque o visual do formulário mais ou menos com o que segue abaixo:

 
   Vá agora na seção private do formulário e declare uma variável chamada VOpcao: String[01], ou seja, é uma variável do tipo String de uma posição só, um procedimento chamado PMontaGrid e outro chamado PLimpar e para finalizar, declare uma função chamada FValidaDados, que deve retornar um valor Booleano. Sua seção private deve estar conforme abaixo:
 

     Pressione Ctrl + Shift + C para que o Delphi crie os procedimentos no formulário de forma que você possa implementa-los. Após a criação dos procedimentos, vamos codifica-los. Vá até o procedimento PLimpar e codifique-o conforme abaixo:
 
procedure TFUntStringGrid.PLimpar
begin
   PMontaGrid;
   EdtNome.Clear;
   Sexo.ItemIndex := 00;
   EdtNome.SetFocus;
end;
 
Para o procedimento PMontaGrid codifique-o conforme abaixo:
 
procedure TFUntStringGrid.PMontaGrid
var
   VX: Integer;
begin
   for VX := 00 to GridEstudos.RowCount - 01 do
      GridEstudos.Rows[VX].Clear;
 
   GridEstudos.RowCount       := 03;
   GridEstudos.FixedRows       := 01;
   GridEstudos.Cells[00, 00]    := 'Nome';
   GridEstudos.Cells[01, 00]    := 'Sexo';
   GridEstudos.ColWidths[00] := 352;
   GridEstudos.ColWidths[01] := 070;
end;
 
Na função FValidaDados, vamos, por enquanto, validar somente o campo Nome, que não poderá ficar vazio. Codifique-o conforme segue abaixo:
 
function TFUntStringGrid.FValidaDados: Boolean;
begin
   Result := False;
 
   if EdtNome.Text = EmptyStr then
      begin
      Application.MessageBox('O nome do cliente não pode ficar vazio.', 'Atenção', MB_ICONWARNING + MB_OK);
      EdtNome.SetFocus;
      Exit;
   end;
end;
 
   No mais, chegamos ao final deste artigo. Os fontes do mesmo se encontram disponíveis para download. No próximo artigo estaremos criando a nossa classe de Clientes, implementando ela e carregando a mesma no StringGrid que colocamos na tela. Vale lembrar que o mesmo estará "zebrado" de acordo com o sexo do cliente e o objetivo do artigo é termos um StringGrid conforme abaixo, com uma aparência do Excel. Abraços e até o próximo artigo.
 
 
 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?