GARANTIR DESCONTO

Fórum Escrever numero binario no registro do windows #162671

26/05/2003

0

eu usei reg.writebinarydata(´valor´, ´conteudo´) soh q deu erro, como eu faco pra escrever um valor binario no registro?


Smyle

Smyle

Responder

Posts

26/05/2003

Rafael Roni

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;


Responder

Gostei + 0

26/05/2003

Smyle

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


Responder

Gostei + 0

27/05/2003

Smyle

E AE MINHA GENTE??? EH IMPOSSIVEL QUE NUM FORUM DESSA DIMENSAO NINGUEM SAIBA FAZER ISSO, POR FAVOR, COLABOREM !!!!

MUITO GRATO !!!


Responder

Gostei + 0

22/09/2003

Rodrigo Costa

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:

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar