Escrever numero binario no registro do windows
eu usei reg.writebinarydata(´valor´, ´conteudo´) soh q deu erro, como eu faco pra escrever um valor binario no registro?
Smyle
Curtidas 0
Respostas
Rafael Roni
26/05/2003
hehehe essa eu tive trabalho mas tá ai
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;
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
Smyle
26/05/2003
essa dica tem no 800 dicas de delphi do loyd soft, eu usei isso, mas nao sei da onde veio esse tficha por exemplo, entao se puder exemplificar ficarei muito grato
GOSTEI 0
Smyle
26/05/2003
E AE MINHA GENTE??? EH IMPOSSIVEL QUE NUM FORUM DESSA DIMENSAO NINGUEM SAIBA FAZER ISSO, POR FAVOR, COLABOREM !!!!
MUITO GRATO !!!
MUITO GRATO !!!
GOSTEI 0
Rodrigo Costa
26/05/2003
Essa Tficha é um objeto do tipo record, ou seja, uma variável composta por outras variáveis de tipos diferentes.
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:
para ler um valor armazenado em binário:
BinaryData é a forma como o dado, seja ela qual for o tipo(string,integer...) é armazenado no registro.
Abraço,
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