Código
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
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009