Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TRegIniFile 
:(
    Опции темы
Kirgston
Дата 31.8.2008, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: нет
Всего: 2



Всем доброго времени суток! Я пишу программу которая будет работать с реестром. Вот у меня незадача выходит... я пишу в реестр WriteInteger и оно отображается как тип REG_SZ а мне надо чтоб оно там было в ввиде REG_DWORD , подскажите пожалуйста как это сделать! Зарание ОЧЕНЬ благодарен!
PM MAIL   Вверх
THandle
Дата 31.8.2008, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Kirgston, TRegistry использовать можно? Тогда вот:
Код


  with TRegistry.Create do
    try
      RootKey := HKEY_LOCAL_MACHINE;
      OpenKey('Software\MyProgram',true);
      WriteInteger('Int1', 123);
    finally
      free;
    end;

PM   Вверх
Alexeis
Дата 31.8.2008, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



Если глянуть на метод WriteInteger то ясно почему это происходит

Код

procedure TRegIniFile.WriteInteger(const Section, Ident: string; Value: LongInt);
var
  Key, OldKey: HKEY;
begin
  CreateKey(Section);
  Key := GetKey(Section);
  if Key <> 0 then
  try
    OldKey := CurrentKey;
    SetCurrentKey(Key);
    try
      inherited WriteString(Ident, IntToStr(Value));
    finally
      SetCurrentKey(OldKey);
    end;
  finally
    RegCloseKey(Key);
  end;
end;


Вместо TRegIniFile следует использовать TRegistry
см. ниже

Код

procedure TForm1.FormCreate(Sender: TObject);
var
  r : TRegIniFile;
  b : Boolean;
  r1 : TRegistry;
begin
{  r := TRegIniFile.Create('');
  r.RootKey := HKEY_CURRENT_USER;
  b := r.OpenKey('Software\7-Zip', false);
  r.WriteInteger('', 'smf', 123456);
  r.CloseKey;
  r.Free;  }
  r1 := TRegistry.Create;
  r1.RootKey := HKEY_CURRENT_USER;
  r1.OpenKey('Software\7-Zip', false);
  r1.WriteInteger('smf', 123456);
  r1.CloseKey;
  r1.Free;
end;



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Kirgston
Дата 31.8.2008, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: нет
Всего: 2



Да большое спасибо! Помогло! Но скажите пожалуйста мне такому оболдую. Какая разница в коде что вы создали и етом?

Код

procedure TForm2.Button1Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex=0 then
Regini.WriteInteger('Config', 'Resolution', 0)
else
if RadioGroup1.ItemIndex=1 then
Regini.WriteInteger('Config', 'Resolution',1)
else
if RadioGroup1.ItemIndex=2 then
Regini.WriteInteger('Config', 'Resolution',2)
else
if RadioGroup1.ItemIndex=3 then
Regini.WriteInteger('Config', 'Resolution',3);
if RadioGroup2.ItemIndex=0 then
Regini.WriteInteger('Config', 'ColorDepth',0)
else
if RadioGroup2.ItemIndex=1 then
Regini.WriteInteger('Config', 'ColorDepth',1);
if CheckBox1.Checked then
Regini.WriteInteger('Config', 'WindowMode',1)
else
Regini.WriteInteger('Config', 'WindowMode',0);
if CheckBox2.Checked then
Regini.WriteInteger('Config', 'SoundOnOff',1)
else
Regini.WriteInteger('Config', 'SoundOnOff',0);
if CheckBox3.Checked then
Regini.WriteInteger('Config', 'MusicOnOff',1)
else
Regini.WriteInteger('Config', 'MusicOnOff',0);
if Edit1.Text<>'' then
Regini.WriteString('Config', 'ID',Edit1.Text);
Close;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
Regini:=TReginiFile.Create('Software');
RegIni.OpenKey('WebZen', true);
RegIni.OpenKey('Mu', true);
end;

PM MAIL   Вверх
Alexeis
Дата 31.8.2008, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



Код

Regini:=TReginiFile.Create('Software'); //- создается объект класса TReginiFile

r1 := TRegistry.Create; //Создается объект класса TRegistry


Это просто 2 разных класса и все.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Kirgston
Дата 31.8.2008, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: нет
Всего: 2



Аааа большое спасибо! Разобрался smile Просто я не мог создать TRegIniFiles пока в uses не вписал TRegistry. Потому думал что это одно и тоже. Большое спасибо!
PM MAIL   Вверх
CodeMonkey
Дата 31.8.2008, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Цитата(Kirgston @  31.8.2008,  11:48 Найти цитируемый пост)
пока в uses не вписал TRegistry

Не TRegistry, а Registry! Имя класса с именем модуля не путаем.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
aqually
Дата 13.10.2022, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.10.2022

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1457 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.