Erazer
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Помогите разобраться плз.. var Reg: TRegistry; Res:string; buf: array of byte; i,bufSize:integer; begin Reg := TRegistry.Create; try Reg.RootKey := Key; if Reg.OpenKey(SubKey, True) then begin // Определить размер bufSize:=Reg.GetDataSize(Param); // Установить размер динамического массива SetLength(buf,bufSize); Reg.ReadBinaryData(Param, buf,bufSize); Showmessage((IntToHex(buf[0],2))); finally Reg.CloseKey; Reg.Free; end; end; на Showmessage получаю Acsess violation. Если же использую статический массив то все работает. var Reg: TRegistry; Res:string; buf: array [0..15]of byte; i,bufSize:integer; begin Reg := TRegistry.Create; try Reg.RootKey := Key; if Reg.OpenKey(SubKey, True) then begin // Определить размер bufSize:=sizeof(buf); Reg.ReadBinaryData(Param, buf,bufSize); Showmessage((IntToHex(buf[0],2))); end; finally Reg.CloseKey; Reg.Free; end; Добавлено: спасибо за внимание. достаточно было сделать так: Reg.ReadBinaryData(Param, buf[0], bufSize) |