Fórum Escrever numero binario no registro do windows #162671
26/05/2003
0
Smyle
Curtir tópico
+ 0Posts
26/05/2003
Rafael Roni
type
{ Declara um tipo registro }
TFicha = record
Codigo: integer;
Nome: string[40];
DataCadastro: TDateTime;
end;
//para gravar os dados
procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
Ficha: TFicha;
begin
{ Coloca alguns dados na variável Ficha }
Ficha.Codigo := StrToInt(Edit1.Text);
Ficha.Nome := Edit2.Text;
Ficha.DataCadastro := StrToDate(Edit3.Text);
Reg := TRegistry.Create;
try
{ Define a chave-raiz do registro }
Reg.RootKey := HKEY_CURRENT_USER;
{ Abre uma chave (path). Se não existir cria e abre. }
Reg.OpenKey(´Cadastro\Pessoas\´, true);
{ Grava os dados (o registro) }
Reg.WriteBinaryData(´Dados´, Ficha, SizeOf(Ficha));
finally
Reg.Free;
end;
end;
// para ler os dados
procedure TForm1.Button2Click(Sender: TObject);
var
Reg: TRegistry;
Ficha: TFicha;
begin
Reg := TRegistry.Create;
try
{ Define a chave-raiz do registro }
Reg.RootKey := HKEY_CURRENT_USER;
{ Se existir a chave (path)... }
if Reg.KeyExists(´Cadastro\Pessoas´) then
begin
{ Abre a chave (path) }
Reg.OpenKey(´Cadastro\Pessoas´, false);
{ Se existir o valor... }
if Reg.ValueExists(´Dados´) then
begin
{ Lê os dados }
Reg.ReadBinaryData(´Dados´, Ficha, SizeOf(Ficha));
Edit1.Text := IntToStr(Ficha.Codigo);
Edit2.Text := Ficha.Nome;
Edit3.Text := DateToStr(Ficha.DataCadastro);
end else
ShowMessage(´Valor não existe no registro.´)
end else
ShowMessage(´Chave (path) não existe no registro.´);
finally
Reg.Free;
end;
end;
Gostei + 0
26/05/2003
Smyle
Gostei + 0
27/05/2003
Smyle
MUITO GRATO !!!
Gostei + 0
22/09/2003
Rodrigo Costa
Quanto ao método WriteBinaryData do TRegistry, você deve passar três parâmetros: o nome do valor do registro que vc quer escrever, o conteúdo deste valor (tem que ser passado através de uma variável qualquer) e o tamanho do valor que você quer gravar.
WriteBinaryData(const Name: String; var Buffer; BufSize: Integer);
Exemplo:
para gravar um valor em binário:
reg:=tregistry.Create; reg.RootKey:=HKEY_CURRENT_USER; reg.OpenKey(´\Control Panel´,false); variavel:=´texto´; reg.WriteBinaryData(´teste´,variavel,sizeof(variavel));
para ler um valor armazenado em binário:
reg.ReadBinaryData(´teste´,variavel,sizeof(variavel)); edit1.Text:=variavel;
BinaryData é a forma como o dado, seja ela qual for o tipo(string,integer...) é armazenado no registro.
Abraço,
Rodrigo Costa
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)