Re: [DELPHI,XP] Запись в реестр integer-а
Может быть, это потому, что TRegIniFile предназначен, на самом деле, для работы с текстовыми файлами, а вовсе не с реестром.
Попробуй использовать TRegistry.WriteInteger. У меня все получилось.
спасибо помогло
Value:integer;
...
Regini.WriteInteger('Section1', 'ID1', Value1)
![](/images/graemlins/grin.gif)
маза опечатка. У меня в обоих случаях i, и все равно TRegIniFile.WriteInteger создает строковую переменную. Особенность работы с профилями в ini-файлах, полагаю.
function WriteReg(RootKey: HKEY; const SubKeyName, ValueName: string; Value: DWORD): Boolean;
var
SubKey: HKEY;
begin
SubKey := RootKey;
if (SubKeyName = '') or
CreateRegKey(RootKey, PChar(SubKeyName SubKey) then
begin
Result := RegSetValueEx(SubKey, PChar(ValueName 0, REG_DWORD_LITTLE_ENDIAN, @Value, sizeof(Value = ERROR_SUCCESS;
if SubKey <> RootKey then
RegCloseKey(SubKey);
end
else
Result := False;
end;
![](/images/graemlins/smile.gif)
VCL vs WinAPI что ли?
![](/images/graemlins/smile.gif)
vcl-ем не заморачиваюсь
только это еще не vcl, а просто один из стандартных классов. Для маленьких программ предпочтительнее использовать именно WinAPI дабы избавиться от SysUtils.
а что такого плохого в SysUtils?
простейшая прога занимает 13824 байт (между begin и end ничего нет, без подключения каких-либо модулей)
Если подключить SysUtils, получим 39424 байта. Однако если еще использовать какие-то процедуры из SysUtils, прирост получается еще больше.
Правда, если использовать пакеты стандартные, то получим 3584 и 4096 байт, но использовать пакеты в проектах, не включающих кучу модулей, не правильно.
добавляет несколько десятков Кб, в зависимости от того, что использовать.
![](/images/graemlins/grin.gif)
![](/images/graemlins/grin.gif)
![](/images/graemlins/grin.gif)
![](/images/graemlins/smile.gif)
![](/images/graemlins/smile.gif)
Оставить комментарий
kokon77
делаю следующее...
var
RegIni:TRegIniFile;
Value:integer;
...
Regini.WriteInteger('Section1', 'ID1', Value1)
...
смотрю после в реестре ...
ID1 REG_SZ 3
т.е. ID1 почему то строка...., а нужно записать DWORD...
кто может подсказать что нужно исправить?