Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.17.154.171] |
|
Сообщ.
#1
,
|
|
|
type TExRegistry = class(TRegistry) public function ReadStrings(const ValueName: String): String; end; function TExRegistry.ReadStrings(const ValueName: String): String; var ValueType : DWORD; ValueLen : DWORD; P, Buffer : PChar; begin Result := ''; SetLastError(RegQueryValueEx(CurrentKey, PChar (ValueName), nil, @ValueType, nil, @ValueLen)); if GetLastError = ERROR_SUCCESS then begin if ValueType = REG_MULTI_SZ then begin GetMem(Buffer, ValueLen); try RegQueryValueEx(CurrentKey, PChar(ValueName), nil, nil, PBYTE(Buffer), @ValueLen); P := Buffer; while P^ <> #0 do begin if Result <> '' then Result := Result + sLineBreak; Result := Result + P; Inc(P, lstrlen(P) + 1); end; finally FreeMem (Buffer); end; end else raise ERegistryException.Create ('String list expected'); end else raise Exception.Create ('Unable read MULTI_SZ value'); end; Автор: Rouse_ |