Menu

Tradução

Português English Español Français

4 Tipos de Dados Compostos do Delphi

Nesse post iremos conhecer alguns dos tipos de dados compostos do Delphi que são mais utilizados.

 

Tipos de Dados Compostos do Delphi
Conjunto de Carros

Introdução

Nesse post iremos conhecer alguns dos tipos de dados compostos do Delphi que são mais utilizados.

No desenvolvimento de software com Delphi, além dos tipos de dados primitivos, como inteiros, reais, caracteres e booleanos, é crucial entender e utilizar os tipos de dados compostos. Esses tipos de dados permitem que você agrupe vários valores em uma única estrutura, facilitando o gerenciamento e a manipulação de dados complexos. Em Delphi, os tipos de dados compostos incluem arrays, records, classes, strings dinâmicas e conjuntos. Eles são fundamentais para criar aplicativos robustos e eficientes, pois oferecem flexibilidade e potência na manipulação de dados.

Explorando os Tipos de Dados Primitivos em Delphi

Delphi é uma linguagem de programação poderosa e flexível, que oferece uma variedade de tipos de dados primitivos para facilitar o desenvolvimento de software. Entender esses tipos de dados é essencial para escrever código eficiente e eficaz. Vamos dar uma olhada nos principais tipos de dados primitivos em Delphi de uma forma simples e direta.

O que são Tipos de Dados Compostos do Delphi

No Delphi, os tipos de dados compostos são usados para agrupar múltiplos valores em uma única estrutura, permitindo uma organização e manipulação mais eficiente de dados complexos. Eles são essenciais para criar aplicações robustas e bem estruturadas. Aqui estão alguns dos principais tipos de dados compostos em Delphi:

Tipos de Dados Compostos em Delphi

  1. Arrays
  2. Records
  3. Enumerations
  4. Conjuntos

Arrays

Arrays são coleções de elementos do mesmo tipo, acessíveis por um índice. Eles são úteis para armazenar listas de itens e permitem operações eficientes de leitura e escrita. Delphi suporta arrays estáticos e dinâmicos, proporcionando versatilidade no uso de memória.

Exemplo:

Delphi

procedure ArrayExample;
var
  IntArray: array[1..5] of Integer;
  I: Integer;
begin
  for I := 1 to 5 do
    IntArray[I] := I * 10;

  for I := 1 to 5 do
    ShowMessage('IntArray[' + IntToStr(I) + ']: ' + IntToStr(IntArray[I]));
end;
  

Records

Os records são tipos de dados que agrupam diferentes tipos de variáveis em uma única estrutura. Eles são semelhantes às estruturas (structs) em outras linguagens de programação e são ideais para representar objetos simples com várias propriedades.

Exemplo:

Delphi

type
  TPerson = record
    Name: String;
    Age: Integer;
    Salary: Currency;
  end;

procedure RecordExample;
var
  Person: TPerson;
begin
  Person.Name := 'John Doe';
  Person.Age := 30;
  Person.Salary := 45000.75;

  ShowMessage('Name: ' + Person.Name + sLineBreak +
              'Age: ' + IntToStr(Person.Age) + sLineBreak +
              'Salary: ' + CurrToStr(Person.Salary:0:2) + sLineBreak);  
end;
  

Enumerations

Enumerations são tipos definidos pelo usuário que consistem em um conjunto de constantes nomeadas.

Exemplo:

Delphi

type
  TDays = (Sun, Mon, Tue, Wed, Thu, Fri, Sat);

procedure EnumExample;
var
  Day: TDays;
begin
  Day := Fri;
  ShowMessage('Day: '+ IntToStr(Ord(Day))); // Saídas: 5 (índice baseado em zero)
end;;
  

Conjuntos

Os conjuntos são coleções de valores do mesmo tipo baseados em um intervalo específico. Eles são usados para representar grupos de valores discretos e suportam operações como união, interseção e diferença.

Exemplo:

Delphi

type
  TDaysSet = set of TDays;

procedure SetExample;
var
  WorkDays: TDaysSet;
begin
  WorkDays := [Mon, Tue, Wed, Thu, Fri];
  if Sat in WorkDays then
    ShowMessage('Saturday is a workday')
  else
    ShowMessage('Saturday is not a workday');
end;
  

Exemplo Prático

O código a seguir cria um aplicativo Delphi simples com quatro botões, cada um demonstrando o uso de diferentes tipos de dados. Veja como configurar e executar este exemplo:

Passo a Passo para Criar o Projeto

  1. Abra o Delphi e crie um novo projeto:
    • Vá para File -> New -> VCL Forms Application - Delphi.
  2. Adicione quatro botões ao formulário:
    • Arraste quatro componentes Button da Tool Palette e solte-os no formulário. Nomeie-os apropriadamente (por exemplo, Button1, Button2, etc.).
  3. Configure os eventos OnClick para cada botão:
    • Clique duas vezes em cada botão para abrir o editor de código e criar o evento OnClick.
  4. Adicione o código a seguir ao formulário
Delphi

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
 TPerson = record
    Name: String;
    Age: Integer;
    Salary: Currency;
  end;

  TDays = (Sun, Mon, Tue, Wed, Thu, Fri, Sat); //Domingo, Segunda, Terça, Quarta, Quinta, Sexta, Sábado

  TDaysSet = set of TDays; //Conjunto do tipo TDays

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    procedure ArrayExample;
    procedure RecordExample;
    procedure EnumExample;
    procedure SetExample;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ArrayExample;
var
  IntArray: array[1..5] of Integer;
  I: Integer;

begin
  for I := 1 to 5 do
    IntArray[I] := I * 10;

  for I := 1 to 5 do
    ShowMessage('IntArray[' + IntToStr(I) + ']: ' + IntToStr(IntArray[I]));

end;

procedure TForm1.RecordExample;
var
  Person: TPerson;

begin
  Person.Name := 'John Doe';
  Person.Age := 30;
  Person.Salary := 45000.75;

  ShowMessage('Name: ' + Person.Name + sLineBreak +
              'Age: ' + IntToStr(Person.Age) + sLineBreak +
              'Salary: ' + CurrToStr(Person.Salary) + sLineBreak);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  //Exemplo do uso de array
  ArrayExample;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  //Exemplo do uso de records
  RecordExample;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  //Exemplo do uso de enumerations
  EnumExample;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  //Exemplo do uso de conjuntos
  SetExample;
end;

procedure TForm1.EnumExample;
var
  Day: TDays;

begin
  Day := Fri;
  ShowMessage('Day: '+ IntToStr(Ord(Day))); // Saídas: 5 (índice baseado em zero)
end;

procedure TForm1.SetExample;
var
  WorkDays: TDaysSet;

begin
  WorkDays := [Mon, Tue, Wed, Thu, Fri];

  if Sat in WorkDays then
    ShowMessage('Saturday is a workday')
  else
    ShowMessage('Saturday is not a workday');
end;

end.  

Veja a ilustração do projeto abaixo:

Tipos de dados compostos do Delphi
Ilustração do projeto.

Código fonte do exemplo

Você pode fazer o download do exemplo do projeto através do repositório do github:

https://github.com/Gisele-de-Melo/TipoComposto

Conclusão

Os tipos de dados compostos em Delphi são ferramentas poderosas que permitem aos desenvolvedores criar aplicativos sofisticados e eficientes. Compreender e utilizar esses tipos de dados é essencial para aproveitar ao máximo as capacidades de Delphi. Eles oferecem formas estruturadas e organizadas de armazenar e manipular dados complexos, facilitando a criação de software modular, escalável e de fácil manutenção. Explorar esses tipos de dados e suas aplicações práticas enriquecerá seu arsenal de programação e melhorará significativamente a qualidade de seus projetos em Delphi. Portanto continue evoluindo e colocando em prática o seu aprendizado para elevar o seu nível e do seu projeto também.

Posts Relacionados




Nenhum comentário:

Postar um comentário

Recursividade em Delphi: Conceitos, Exemplos e Aplicações Práticas

Neste post, você aprenderá quando usar recursividade em Delphi, suas vantagens e desvantagens, além de um exemplo prático implementa...