Você está aqui: Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet

Como usar a propriedade Bof para testar se estamos no primeiro registro do TClientDataSet do Delphi

Quantidade de visualizações: 11009 vezes
Em algumas situações gostaríamos de verificar se já estamos no primeiro registro do TClientDataSet, ou seja, estamos percorrendo todos os registros do dataset de trás para frente e queremos saber se já estamos no primeiro. Para isso podemos usar a propriedade Bof da classe TClientDataSet. Esta propriedade retorna true se estivermos no primeiro registro e false em caso contrário.

Veja um trecho de código no qual usamos um laço while para percorrer todos os registros de um TClientDataSet de trás para frente. Note o uso da propriedade Bof para finalizar as iterações do laço:

Este trecho de código ou resolução de exercício faz parte do Super Pack 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos em Java, Python, VisuAlg, Portugol, Delphi, C#, C, C++, VB.NET, Golang, Pascal, Ruby, PHP, e várias outras linguagens.

Aprenda a programar resolvendo problemas do mundo real. Tudo em português, com comentários em português.

Quero Ser Apoiador(a)


A propriedade Bof é verdadeira quando:

a) Abrimos um dataset.

b) Efetuamos uma chamada ao método First (primeiro) do dataset.

c) Chamamos o método Prior (anterior) do dataset e a chamada falha porque o registro atual já é o primeiro registro no dataset.

d) Efetuamos uma chamada ao método SetRange em uma faixa de dados ou dataset vazio.

Esta dica foi escrita e testada no Delphi 2009.

Link para compartilhar na Internet ou com seus amigos:

Delphi ::: Classes, Controles e Componentes ::: TRegistry (Registro do Windows)

Como verificar se uma chave já existe no registro do Windows usando a função KeyExists() da classe TRegistry do Delphi

Quantidade de visualizações: 16800 vezes
Em algumas situações nós gostaríamos de verificar se uma determinada chave já existe no registro do Windows, talvez antes de criá-la, excluí-la ou tentar ler algum de seus valores.

O método KeyExists() da classe TRegistry pode ser usado para esta finalidade. Este método recebe uma string representando a chave a ser pesquisada e retorna um valor Boolean indicando a existência da chave. Veja o trecho de código abaixo:

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

procedure TForm3.Button5Click(Sender: TObject);
var
  reg: TRegistry;
begin
  // uses Registry

  // vamos criar uma instância da classe TRegistry
  reg := TRegistry.Create;

  // a chave raiz padrão é HKEY_CURRENT_USER mas, por via das dúvidas
  // vamos reafirmar isso
  reg.RootKey := HKEY_CURRENT_USER;

  // vamos verificar a existência de uma chave a partir da chave raiz
  if reg.KeyExists('Arquivo de Códigos') then
    begin
      ShowMessage('A chave pesquisada existe.');
    end
  else
    begin
      ShowMessage('A chave pesquisada não existe.');
    end;

  // vamos liberar o registro 
  reg.Free;
end;

Aqui nós estamos verificando a existência da chave "Arquivo de Códigos" a partir da chave raiz HKEY_CURRENT_USER.

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


Delphi ::: Dicas & Truques ::: Matemática e Estatística

Como calcular porcentagem em Delphi - Como efetuar cálculos de porcentagem em Delphi

Quantidade de visualizações: 30449 vezes
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em Delphi.

Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas.

Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em Delphi:

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

// Algoritmo que calcula porcentagem em Delphi
program estudos_delphi;

{$APPTYPE CONSOLE}

uses
  SysUtils, Math;

var
  // variáveis usadas na resolução do problema
  valor, percentual, valor_final: double;

begin
  valor := 178.00; // valor original
  percentual := 15.0 / 100.0; // 15%
  valor_final := valor + (percentual * valor);

  // mostra o resultado
  WriteLn('O valor final do produto é: ' + FloatToStr(valor_final));

  // O resultado será 204,70

  WriteLn;
  Write('Pressione Enter para sair...');
  ReadLn;
end.

Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em Delphi:

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

// Algoritmo que calcula porcentagem em Delphi
program estudos_delphi;

{$APPTYPE CONSOLE}

uses
  SysUtils, Math;

var
  // variáveis usadas na resolução do problema
  valor, percentual, valor_final: double;

begin
  valor := 250.00; // valor original
  percentual := 8.0 / 100.0; // 8%
  valor_final := valor - (percentual * valor);

  // mostra o resultado
  WriteLn('O valor final do produto é: ' + FloatToStr(valor_final));

  // O resultado será 230,00

  WriteLn;
  Write('Pressione Enter para sair...');
  ReadLn;
end.

Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em Delphi:

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

// Algoritmo que calcula porcentagem em Delphi
program estudos_delphi;

{$APPTYPE CONSOLE}

uses
  SysUtils, Math;

var
  // variáveis usadas na resolução do problema
  perguntas, acertos: double;

begin
  perguntas := 90.0;
  acertos := 72.0;

  // mostra a porcentagem de acertos
  WriteLn('Porcentagem de acertos: ' +
    FloatToStr((acertos / perguntas) * 100) + '%');

  // mostra a porcentagem de erros
  WriteLn('Porcentagem de erros: ' +
    FloatToStr(((perguntas - acertos) / perguntas) * 100) + '%');

  // Os resultados serão 80% e 20%

  WriteLn;
  Write('Pressione Enter para sair...');
  ReadLn;
end.

Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 340,00. Qual foi a porcentagem de lucro na transação? Veja o código em Delphi:

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

// Algoritmo que calcula porcentagem em Delphi
program estudos_delphi;

{$APPTYPE CONSOLE}

uses
  SysUtils, Math;

var
  // variáveis usadas na resolução do problema
  valor_anterior, novo_valor, porcentagem_lucro: double;

begin
  valor_anterior := 300.0; // valor anterior
  novo_valor := 340.0; // valor novo

  // calcula a porcentagem de lucro
  // efetua o cálculo
  porcentagem_lucro := ((novo_valor * 100) / valor_anterior) - 100;

  WriteLn('A porcentagem de lucro foi de: ' +
    FloatToStr(porcentagem_lucro) + '%');

  // O resultado será 13,33

  WriteLn;
  Write('Pressione Enter para sair...');
  ReadLn;
end.

Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em Delphi:

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

// Algoritmo que calcula porcentagem em Delphi
program estudos_delphi;

{$APPTYPE CONSOLE}

uses
  SysUtils, Math;

var
  // variáveis usadas na resolução do problema
  valor, percentual, comissao: double;

begin
  valor := 70.0; // valor do produto
  percentual := 5.0 / 100.0; // 5%

  // calcula a comissão
  comissao := percentual * valor;

  // mostra o resultado
  WriteLn('O valor repassado ao vendedor é: '
    + FloatToStr(comissao));

  // O resultado será 3,5

  WriteLn;
  Write('Pressione Enter para sair...');
  ReadLn;
end.



Delphi ::: Dicas & Truques ::: Recursão (Recursividade)

Como usar recursividade em Delphi - Como usar recursão ou funções recursivas em Delphi

Quantidade de visualizações: 15231 vezes
Recursão ou recursividade é a habilidade que uma procedure ou function (função) possui de chamar a si própria uma vez, várias, indefinidamente ou até que a solução do problema a ser resolvido seja encontrada. Assim, podemos definir uma função recursiva (aqui uma procedure recursiva) em Delphi da seguinte forma (atenção: não execute este código):

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

// uma procedure recursiva
procedure Recursiva;
begin
  // chama a si própria
  Recursiva;
end;

// vamos chamar a procedure pela primeira vez
// a partir do Click de um botão
procedure TForm1.Button1Click(Sender: TObject);
begin
  Recursiva;
end;

O fato de eu pedir para que você não execute o código é que, uma vez clicado o botão, a procedure Recursiva será chamada e continuará chamando a si mesma até que a pilha do sistema estoure, ou seja, como funções recursivas são implementadas usando a pilha do sistema operacional e não na área de memória destinada a cada aplicativo o resultado será um travamento do programa, e, caso não estejamos com sorte, um travamento do sistema operacional. Sabedor do risco, clique no botão para ver o resultado você mesmo.

O que devemos saber a respeito das funções recursivas é que estas precisam saber o ponto de parada, de forma a evitar chamadas infinitas. Como exemplo, veja uma procedure recursiva que conta de 0 até 10. Note como cada chamada verifica se já é hora de interromper a cadeia:

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

// uma procedure recursiva que conta de 0 até 10
procedure Contar(valor: Integer);
begin
  // vamos exibir o valor atual
  ShowMessage(IntToStr(valor));

  // é hora de parar?
  if valor = 10 then
    ShowMessage('Terminei')
  else
    begin
      // chama a si própria (note que aumentamos o valor atual em 1)
      Inc(valor);
      Contar(valor);
    end;
end;

// vamos chamar a procedure pela primeira vez
// a partir do Click de um botão
procedure TForm1.Button1Click(Sender: TObject);
begin
  // chama a função recursiva fornecendo o valor inicial
  Contar(0);
end;

Execute este código e veja o resultado. Observe que a cada chamada recursiva nós incrementamos a variável de controle. Ela é a responsável por evitar que chamadas infinitas sejam feitas.

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



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