ein dynamsiches Array ist ein Pointer der auf die Daten zeigt. Daher ist SizeOf(Dynamsiches Array) immer genau so groß wie ein Pointer. um Die Größe zu ermitteln solltest du also die Anzahl der Einträge (mit Length ermitteln) mit der Größe eines Eintrags (Sizeof(char) bzw. SizeOf(DynArray[0])) multiplizieren.
Von daher sollte es so gehen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
binary_buf:array of char;
begin
treg:=tregistry.create;
TReg.RootKey:=HKEY_LOCAL_MACHINE;
TReg.OpenKey('SOFTWARE\',False);
if TReg.ValueExists('SOFTWARE\') = False then
begin
SetLength(binary_buf,1);
binary_buf[0]:=char(66);
binary_buf[1]:=char(67);
treg.WriteBinaryData('ka',binary_buf[0],Length(binary_buf) * SizeOf(char));
edit1.text:=binary_buf[0]+binary_buf[1];
end;
end;