Buscar

Utilizando registro do windows como banco de dados

Código

{ Este exemplo mostra como funciona como podemos gravar dados do registro do Windows utilizando o Delphi 2 ou 3 }

procedure frmMain.GravarRegistro;
const
Raiz : String = 'SoftwarePrograma';
var
Registro : TRegistry;
begin
// Chama o construtor do objeto
Registro := TRegistry.Create;
{ Abre a chave (se o 2°. Parâmetro for True, ele cria a chave caso ela ainda não exista. }
Registro.OpenKey (Raiz, True);
// Grava as informações do form
Registro.WriteInteger ('Largura', Width);
Registro.WriteInteger ('Altura', Height);
Registro.WriteInteger ('Esquerda', Left);
Registro.WriteInteger ('Topo', Top);
// Grava as informações das caixas Abrir e Salvar.
Registro.WriteString ('Abrir Inicial', OpenDialog1.InitialDir);
Registro.WriteString('Salvar Inicial', SaveDialog1.InitialDir);
// Fecha a chave e o objeto
Registro.CloseKey;
Registro.Free;
end;

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 é:

Registro.WriteString (NomeDoValor, Conteúdo);

onde NomeDoValor é o nome que você vai dar ao valor dentro da chave, e Conteúdo é o conteúdo desse valor.

Para se escrever dados de outros tipos, utilize as funções:

WriteBool (NomeDoValor, Conteúdo); // Boolean
WriteBinaryData (NomeDoValor, Conteúdo); // Valor Binário
WriteCurrency (NomeDoValor, Conteúdo); // Currency
WriteDate (NomeDoValor, Conteúdo); // TDateTime
WriteDateTime (NomeDoValor, Conteúdo); // TDateTime
WriteFloat (NomeDoValor, Conteúdo); // Float (Real)
WriteInteger (NomeDoValor, Conteúdo); // Integer
WriteString (NomeDoValor, Conteúdo); // String
WriteTime (NomeDoValor, Conteúdo); // TDateTime

{ Este exemplo mostra como funciona como podemos ler dados do registro do Windows utilizando o Delphi 2 ou 3 }

procedure frmMain.LerRegistro;
const
Raiz : String = ‘SoftwarePrograma';
var
Registro : TRegistry;
begin
// Chama o construtor do objeto
Registro := TRegistry.Create;
with Registro do
begin
// Somente abre se a chave existir
if OpenKey (Raiz, False) then
// Envia as informações ao form, vendo se os valores existem, primeiramente...
if ValueExists ('
Largura') then
Width := ReadInteger ('
Largura');
if ValueExists ('
Altura') then
Height := ReadInteger ('
Altura');
if ValueExists ('
Esquerda') then
Left := ReadInteger ('
Esquerda');
if ValueExists ('
Topo') then
Top := ReadInteger ('
Topo');
// Envia as informações para as caixas Abrir e Salvar.
OpenDialog1.InitialDir := ReadString ('
Abrir Inicial');
SaveDialog1.InitialDir := ReadString ('
Salvar Inicial');
// Fecha a chave e o objeto
Registro.CloseKey;
Registro.Free;
end;

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) : Boolean;
ReadBinaryData ( NomeDoValor ; var Buffer ; TamBuffer : Integer): Integer;
ReadCurrency (NomeDoValor) : Currency;
ReadDate (NomeDoValor) : TDateTime;
ReadDateTime (NomeDoValor) : TDateTime;
ReadFloat (NomeDoValor) : Double;
ReadInteger (NomeDoValor) : Integer;
ReadString (NomeDoValor) : String;
ReadTime (NomeDoValor) : TdateTime

o_lins@hotmail.com

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Windows
Adicionada dia: 17/12/04
Por: ISRAEL LINS ALBUQUERQUE
Visualizada: 3129 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009