Você está aqui: Delphi ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Delphi para iniciantes - Como escrever uma função que retorna uma matriz de Integer

Quantidade de visualizações: 13531 vezes
Em algumas situações precisamos retornar uma matriz a partir de uma função. Nesta dica eu mostro como isso pode ser feito. O primeiro passo é declarar um novo tipo. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

type // vamos declarar um novo tipo
  TMatrizInteiros = array of Integer;

Aqui o tipo TMatrizInteiros representa uma matriz de inteiros. Veja a unit completa para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type // vamos declarar um novo tipo
  TMatrizInteiros = array of Integer;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// função usada para construir e retornar uma
// matriz de Integer
function obterValores: TMatrizInteiros;
var
  tempArray: TMatrizInteiros;
  i: integer;
begin
  // vamos definir o tamanho da matriz
  SetLength(tempArray, 10);

  // vamos inicializar a matriz com os números pares de 0 até 18
  // note que em matrizes abertas o índice inicial é sempre 0
  for i := Low(tempArray) to High(tempArray) do
    begin
      tempArray[i] := i * 2;
    end;

  Result := tempArray; // vamos retornar a matriz
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  valores: TMatrizInteiros; // uma matriz do tipo TMatrizInteiros
  i: Integer;
begin
  valores := obterValores();

  // que já temos a matriz, vamos exibir os valores de
  // seus elementos
  for i := 0 to High(valores) do
    begin
      Memo1.Lines.Add(IntToStr(valores[i]));
    end;
end;

end.

Note que a função retornará uma matriz aberta (open array). Desta forma, seu índice inicial será sempre 0.

Link para compartilhar na Internet ou com seus amigos:

Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid

Como usar a propriedade Alignment da classe TColumn para alinhar o conteúdo das células do TDBGrid do Delphi

Quantidade de visualizações: 11775 vezes
O conteúdo de cada coluna, ou seja, todas as células de uma determinada coluna, pode ser alinhado por meio da propriedade Alignment da classe TColumn. Esta propriedade aceita um de três valores (pertencentes à enumeração Classes.TAlignment):

taLeftJustify - o texto é alinhado à esquerda;

taCenter - o texto é alinhado ao centro;

taRightJustify - o texto é alinhado à direita.

O valor para esta propriedade pode ser definido em tempo de design ou execução. Para definir o alinhamento do conteúdo de uma coluna em tempo de design, basta clicar com o botão direito no DBGrid e escolher a opção Columns Editor. Em seguida clique na coluna desejada e vá em sua propriedade Alignment no Object Inspector.

Em tempo de execução podemos definir o alinhamento para um determinada coluna do DBGrid usando o seguinte trecho de código:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.Button3Click(Sender: TObject);
begin
  // vamos alinhar ao centro o conteúdo das células da
  // primeira coluna
  DBGrid1.Columns[0].Alignment := TAlignment.taCenter;
end;

Veja que neste trecho de código eu usei TAlignment.taCenter. Esta é uma boa forma de indicar no código de onde o valor taCenter está vindo. No entanto, o Delphi permite que se omita o nome da enumeração TAlignment.

Esta dica foi escrita e testada no Delphi 2009.


Delphi ::: Dicas & Truques ::: Arquivos e Diretórios

Como retornar o diretório atual em Delphi usando a função GetDir()

Quantidade de visualizações: 12718 vezes
Em algumas situações precisamos obter o diretório atual, ou seja, aquele a partir do qual nosso programa está sendo executado. Em Delphi isso pode ser feito com o auxílio da procedure GetDir(). Esta procedure requer um valor inteiro na faixa de 0 a 3 e uma string passada por referência. Em geral usamos o valor 0 no primeiro argumento para representar o drive padrão. Veja o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  diretorio_atual: string;
begin
  // vamos obter o diretório atual e atribuí-lo
  // na variável diretorio_atual
  GetDir(0, diretorio_atual);

  // vamos exibir o resultado
  ShowMessage('O drive e diretório atual são: ' +
    diretorio_atual);
end;

Ao executar este código nós teremos o seguinte resultado:

O drive e diretório atual são: C:\Users\Osmar\Documents\RAD Studio\Projects

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Delphi ::: VCL - Visual Component Library ::: TListBox

Como excluir o item ou itens selecionados em uma TListBox do Delphi usando a função DeleteSelected

Quantidade de visualizações: 13199 vezes
Em algumas ocasiões nós precisamos excluir o item ou os itens selecionados em uma TListBox. Isso pode ser feito com o auxílio do método DeleteSelected da classe TListBox. Veja um trecho de código no qual excluímos apenas o item selecionado:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.FormCreate(Sender: TObject);
begin
  // vamos adicionar alguns itens na ListBox
  ListBox1.Items.Add('Goiânia');
  ListBox1.Items.Add('Curitiba');
  ListBox1.Items.Add('Brasilia');
end;

procedure TForm3.Button1Click(Sender: TObject);
begin
  // vamos excluir o item selecionado
  ListBox1.DeleteSelected;
end;

É possível conseguir o mesmo resultado usando o método Delete() do objeto Items (do tipo TStrings). Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.Button1Click(Sender: TObject);
begin
  // vamos excluir o item selecionado
  ListBox1.Items.Delete(ListBox1.ItemIndex);
end;

Note que o método Delete() do objeto Items exige o índice do elemento a ser removido. Com o método DeleteSelected da classe TListBox esta exigência não existe. Além disso, o método DeleteSelected permite excluir mais de um elemento selecionado, ou seja, ele excluir todos os elementos selecionados. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.FormCreate(Sender: TObject);
begin
  // vamos adicionar alguns itens na ListBox
  ListBox1.Items.Add('Goiânia');
  ListBox1.Items.Add('Curitiba');
  ListBox1.Items.Add('Brasilia');

  // para que este exemplo funcione corretamente, a ListBox
  // deverá permitir seleção múltipla
  ListBox1.MultiSelect := True;
end;

procedure TForm3.Button1Click(Sender: TObject);
begin
  // vamos excluir todos os itens selecionados
  ListBox1.DeleteSelected;
end;

Execute este código, selecione mais de um item e clique no botão para verificar o resultado.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 39 usuários muito felizes estudando em nosso site.