Os sistemas desenvolvidos cada vez mais precisam de informações de configuração e opções (como senhas, posições de impressão e coisas do tipo) e você precisa gravar estas informações em algum lugar.
O Delphi possibilita armazenar estas informações em Arquivos .INI (lembra deles...do Windows 3.x) através do Objeto TInifile, mas a não ser q você esteja utilizando esta versão do Windows (coisa q eu acho difícil..rsrsrs), a melhor alternativa é utilizar o registro do Sistema, que já está disponível a partir da versão Windows 95.
Se você não sabe do que eu estou falando, não se desespere. Antes de começar a utilizar estas informações vá até Iniciar-Executar e digite Regedit. O editor do registro do sistema será exibido e você poderá ter uma idéia de como ele funciona. O programa separa as opções de registro em "pastas", conhecidas aqui como "chaves". Essas chaves contém dados, chamados de "valores". Esses valores possuem um nome, um tipo e um valor específico.
O Delphi encapsula o registro através do objeto TRegistry. É através dele que você irá acessar os dados do Registro. Para você entender melhor como funciona o objeto, vamos explicar primeiro como funciona o Registro do Windows:
As principais chaves "raízes" são:
HKEY_LOCAL_MACHINE e
HKEY_CURRENT_USER. Todas as informações sobre os programas ficam nessas chaves (as outras normalmente possuem informações sobre o Windows).
O
InstallShield (programa para geração de instaladores), por exemplo, instala as informações sobre o nome de usuário e empresa do seu programa em
HKEY_LOCAL_MACHINESOFTWARENome da Sua EmpresaNome Do ProgramaVersão, com os valores Company e Name (Empresa e Nome do Usuário).
Os programas, por sua vez, usam a chave
HKEY_CURRENT_USERSoftware para armazenar informações de seus programas. E é nessa chave que você deve inserir sua sub-chave e colocar lá as informações necessárias.
Um pequeno exemplo de como utilizar o registro do Windows. Suponhamos que o programa necessite gravar a posição da janela, o seu tamanho e o diretório inicial dos diálogos Abrir e Salvar.
Após a criação do objeto, devemos informar qual chave devemos utilizar, utilizando o método
OpenKey (Chave, PodeCriar);
onde Chave é o nome da sub-chave e PodeCriar é um valor booleano que permite (ou não) criar a chave caso a mesma não exista.
Bom, agora vamos logo ao que interessa. A gravação/Leitura no Registro.
Este exemplo ilustra como gravar dados no Registro.
Primeiramente devemos declarar a Unit Registry na clausula Uses de sua aplicação.
Após a criação do objeto, deve-se escolher uma chave para armazenas os valores. No caso, "SoftwarePrograma", cuja chave raiz é HKEY_CURRENT_USER. Note que é para se separar as chaves das sub-chaves utiliza-se o caracter "", tal como nos diretórios do DOS.
Os métodos WriteInteger e WriteString são utilizados para gravar valores inteiros e caracteres, respectivamente. A sintaxe básica é:
onde NomeDoValor é o nome que você vai dar ao valor dentro da chave, e Conteúdo é o conteúdo desse valor.
Para escrever dados de outros tipos, utilize as funções:
Este exemplo mostra como podemos ler dados do registro do Windows utilizando o Delphi.
Sempre use CloseKey quando não for precisar do Registro. Isso permite que as opções sejam gravadas permanentemente, evitando que qualquer problema que o computador tenha afete seu programa.
Os métodos ReadInteger e ReadString funcionam praticamente da mesma maneira que seus correspondentes de escrita. A diferença é que ao invés de passar o valor Conteúdo, eles retornam o valor armazenado. Os correspondentes dos outros tipos são:
ReadBool (NomeDoValor) // Valor booleano
ReadBinaryData ( NomeDoValor ; var Buffer ; TamBuffer : Integer) // Valor Inteiro
ReadCurrency (NomeDoValor) // Valor Currency
ReadDate (NomeDoValor) // Valor Date
ReadDateTime (NomeDoValor) // Valor DateTime;
ReadFloat (NomeDoValor) // Valor Float(Real)
ReadInteger (NomeDoValor) // Valor Inteiro
ReadString (NomeDoValor) // Valor String;
ReadTime (NomeDoValor) // Valor DateTime
É isso aí pessoal....
Qualquer dúvida, entrem em contato.
e-mail: markuvinicius@uol.com.br
msn : pontoclick@hotmail.com
Até a próxima.
Marku Vinícius
Conheça nosso parceiro: