Você está aqui: Delphi ::: Classes, Controles e Componentes ::: TRegistry (Registro do Windows)

Como excluir chaves no registro do Windows usando Delphi a função DeleteKey() da classe TRegistry do Delphi

Quantidade de visualizações: 13930 vezes
Em algumas situações precisamos excluir determinadas chaves do registro do Windows. Para isso podemos usar o método DeleteKey() da classe TRegistry. Este método recebe uma string especificando a chave a ser excluída e retorna um valor Boolean, informando o sucesso da operação.

Veja um trecho de código no qual tentamos excluir uma chave com o nome de "Arquivo de Códigos" localizada sob a chave raiz HKEY_CURRENT_USER:

----------------------------------------------------------------------
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 se a chave que estamos querendo excluir
  // existe
  if reg.KeyExists('Arquivo de Códigos') then
    begin
      // a chave foi encontrada? vamos excluir
      if reg.DeleteKey('Arquivo de Códigos') then
        begin
          ShowMessage('A chave foi excluída com sucesso.');
        end
      else
        begin
          ShowMessage('Não consegui excluir a chave especificada');
        end;
    end
  else
    begin
      ShowMessage('A chave que você deseja excluir não foi encontrada.');
    end;

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


Note que este método remove a chave e todas as informações associadas a ela. Porém, se a chave possuir sub-chaves, estas deverão ser removidas individualmente antes de excluirmos a chave mãe.

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

Link para compartilhar na Internet ou com seus amigos:

Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TField e Classes Derivadas

Como usar a classe TField em seus programas Delphi

Quantidade de visualizações: 12276 vezes
A classe TField (na unit DB) é um ancestral comum de todos os componentes que representam os campos de uma tabela no banco de dados (ou um dataset cujos dados foram carregados de um arquivo do tipo texto, binário ou XML). Esta classe encapsula o comportamento comum a todos os demais componentes to tipo field (campo).

Veja sua posição na hierarquia de classes do Delphi:

System.TObject
  Classes.TPersistent
    Classes.TComponent
      DB.TField
Esta classe ainda implementa as interfaces Classes.IInterfaceComponentReference e System.IInterface.

A classe TField apresenta propriedades, eventos e métodos que são usados para as seguintes tarefas:

1) Alterar o valor de um campo em um dataset;

2) Converter o valor de um campo de um tipo para outro tipo;

3) Efetuar validações nos dados informados pelos usuários para determinados campos;

4) Definir como as informações dos campos são mostradas em tempo de exibição ou para edição;

5) Calcular o valor de um campo a partir de código escrito no evento OnCalcFields do dataset;

6) Pesquisar o valor do campo a partir de outro dataset.

Em geral não criamos instâncias da classe TField diretamente. Componentes que descendem de TField são criados automaticamente a cada vez que o dataset é ativado. Estes descendentes podem ser dinâmicos (o padrão) ou persistentes. Componentes campos dinâmicos refletem as colunas dos metadados da tabela a qual pertencem no momento que o dataset é aberto. Componentes campos persistentes são criados em tempo de design usando o editor Fields, que especifica os campos no dataset, suas propriedades e a ordem em que deverão estar.

A criação de componentes de campos persistentes garante que todas as vezes que uma aplicação for executada, ela usará e exibirá as mesmas colunas, na mesma ordem, até mesmo se a estrutura física da base de dados mudar. Se uma coluna em uma tabela na qual um componente de campo persistente é baseado for excluída ou alterada, o IDE gera uma exceção em vez de permitir a abertura do dataset usando um coluna não existente ou incompatível. Se isso acontecer, devemos remover o camponente field para o campo não existente usando o editor Fields.

Um campo (field) em um dataset é sempre tratado como uma das classes descendentes de TField abaixo:

        
TADTField          TDateField         TReferenceField   
TAggregateField    TDateTimeField     TSmallIntField   
TArrayField        TFloatField        TSQLTimeStampField   
TAutoIncField      TFMTBCDField       TStringField   
TBCDField          TGraphicField      TTimeField   
TBinaryField       TGuidField         TVarBytesField   
TBlobField         TIDispatchField    TVariantField   
TBooleanField      TIntegerField      TWideStringField   
TBytesField        TInterfaceField    TWordField   
TCurrencyField     TLargeintField     TDataSetField   
TMemoField     
Veja um trecho de código no qual usamos o método FieldByName() da classe TDataSet para obter uma referência a um determinado campo (field) de um ClientDataSet e usamos sua propriedade AsString para obter o valor do campo:

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

procedure TForm3.Button3Click(Sender: TObject);
var
  campo: TField;
begin
  // vamos obter o campo com o nome "titulo" do registro atual
  campo := ClientDataSet1.FieldByName('titulo');

  // vamos mostrar o valor do campo
  ShowMessage('O valor do campo é: ' + campo.AsString);
end;

Ao executarmos este código teremos um resultado parecido com:

"O valor do campo é: Programando em Java".

Esta dica foi escrita e testada no Delphi 2009.


Delphi ::: Dicas & Truques ::: Rotinas de Conversão

Como converter uma string em um valor numérico de ponto-flutuante (com parte fracionária) em Delphi usando as funções StrToFloat(), TryStrToFloat() e StrToFloatDef()

Quantidade de visualizações: 24777 vezes
Em algumas situações precisamos converter strings em valores numéricos do tipo ponto-flutuante, ou seja, números que contenham uma parte fracionária. Isso acontece quando recebemos valores de caixas de texto e precisamos usuá-los em cálculos.

Vamos começar com a função StrToFloat() da unit SysUtils. Esta função recebe uma string representando um valor de ponto-flutuante válido e retorna um valor de ponto-flutuante. 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
  valor1, valor2, soma: Double;
begin
  // vamos receber as strings dos TEdits e converter
  // seus valores para números de ponto-flutuante
  // note que em Delphi, um valor de ponto-flutuante
  // é informado em caixas de texto usando vírgula. Ex: 7,3
  valor1 := StrToFloat(Edit1.Text);
  valor2 := StrToFloat(Edit2.Text);

  // vamos obter a soma dos dois valores
  soma := valor1 + valor2;

  // vamos exibir o resultado. Note o uso de FloatToStr() para
  // converter o valor fracionário em string
  ShowMessage('A soma é: ' + FloatToStr(soma));
end;

Note que, se a string sendo convertida possuir um valor de ponto-flutuante inválido, uma exceção do tipo EConvertError será lançada. Podemos evitar isso usando a função TryStrToFloat(). Esta função recebe dois argumentos: a string a ser convertida e a variável do tipo Extended, Double ou Single que receberá o valor. O resultado será true se a conversão for feita com sucesso e false em caso contrário. Veja:

----------------------------------------------------------------------
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
  valor: Double;
begin
  // vamos tentar converter o valor da caixa de texto
  // em um valor de ponto-flutuante
  if TryStrToFloat(Edit1.Text, valor) then
    ShowMessage('Conversão efetuada com sucesso.')
  else
    ShowMessage('Erro na conversão');
end;

Há ainda uma terceira possibilidade: usar a função StrToFloatDef(). Esta função funciona exatamente da mesma forma que StrToFloat(), exceto que agora, se houver um erro de conversão, um valor de ponto-flutuante padrão será retornado. Veja:

----------------------------------------------------------------------
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
  valor: Double;
begin
  // vamos converter o valor da caixa de texto
  // em um valor de ponto-flutuante. Se a conversão não puder
  // ser feita o valor 10,50 será atribuído à varial valor
  valor := StrToFloatDef(Edit1.Text, 10.50);

  // vamos exibir o resultado
  ShowMessage(FloatToStr(valor));
end;

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


Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet

Como obter o número do registro atual em um TClientDataSet do Delphi usando a propriedade RecNo

Quantidade de visualizações: 12878 vezes
Em algumas situações gostaríamos de obter o número do registro atual enquanto navegamos pelos registros de um TClientDataSet. Isso pode ser feito por meio da propriedade RecNo (implementada na classe TDataSet e reimplementada na classe TClientDataSet). O retorno da propriedade é sempre um valor inteiro representando o registro atual. Na implementação da classe TClientDataSet, esta propriedade retorna o valor -1 se o componente estiver no estado (State) dsInsert (um novo registro estiver sendo inserido).

Veja um trecho de código no qual usamos o evento OnClick de um botão para exibir o número do registro atual em um TClientDataSet:

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

procedure TForm3.Button3Click(Sender: TObject);
var
  nRegistro: Integer;
begin
  // obtém o número do registro atual no TClientDataSet
  nRegistro := ClientDataSet1.RecNo;

  // mostra o resultado
  ShowMessage('O número do registro atual é: ' + IntToStr(nRegistro));
end;

Ao executar o código e clicar no botão você verá uma mensagem parecida com:

"O número do registro atual é: 5".

Esta dica foi escrita e testada no Delphi 2009.


Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Dimensionamento de Redes de Distribuição de Água

Qual a vazão necessária na tubulação que sai do reservatório em uma rede ramificada para um loteamento com a seguinte configuração, considerando que cada habitante consome 400 L/dia?



A) 8,67 L/s.

B) 16,42 L/s.

C) 2,63 L/s.

D) 17,33 L/s.

E) 6,96 L/s.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Ética, Legislação e Entidades que regulamentam a profissão

Você estudou sobre a aplicação do método de solução de problemas de engenharia para fins de análise e solução de dilemas éticos na profissão. Com base nessa ferramenta, as alternativas abaixo apresentam etapas de análise e solução de problemas éticos, exceto:

A) Definição do problema e determinação dos objetivos.

B) Identificação de soluções alternativas e de restrições.

C) Escolha de uma solução e testes de potenciais impactos da solução.

D) Negociação e aprovação da solução pelo ente envolvido, a fim de evitar atritos.

E) Documentação e comunicação da solução.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fundações

Fundações diretas ou rasas

As fundações rasas ou diretas apresentam como características a transmissão da carga ao terreno, predominantemente pelas pressões distribuídas sob a base da fundação, e a profundidade de assentamento em relação ao terreno inferior a duas vezes a menor dimensão da fundação.

Sobre as fundações superficiais rasas ou diretas, assinale a alternativa correta.

A) A sapata associada pode ser definida como a sapata sujeita à ação de uma carga distribuída linearmente ou de pilares ao longo de um mesmo alinhamento.

B) O radier é o elemento de fundação superficial que abrange parte ou todos os pilares de uma estrutura, distribuindo os carregamentos.

C) A sapata corrida é definida como a sapata comum a mais de um pilar. Devido a essa particularidade, para sua execução é necessário o uso de máquinas.

D) A sapata é dimensionada de modo que as tensões de tração nela resultantes sejam resistidas pelo concreto, sem necessidade de armadura.

E) O bloco é dimensionado de modo que as tensões de tração nele resultantes sejam resistidas pelo emprego de armadura disposta para esse fim.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

Qual evento JavaScript ocorre quando o usuário clica em um elemento HTML?

A) onchange

B) onmouseover

C) onmouseclick

D) onclick
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Java

Analise o seguinte código Java

double a = 3.0 / 0;
System.out.println(a);

Qual é o resultado de sua execução?

A) Infinity

B) NaN

C) Uma exceção java.lang.ArithmeticException: / by zero

D) 0
Verificar Resposta Estudar Cards Todas as Questões

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á 46 usuários muito felizes estudando em nosso site.