Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2007, 22:25   #1
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
Восклицание Как записать и прочитать переменную моего типа из реестра?

Привет! Мне нужно записать переменную моего типа в реестр, я подумал, что это
надо через WriteBinaryData() но почему - то не получается....
Записывается, то она записываетя... а читается какая - то ерунда...

Код:
unit Unit1;

interface

        uses Registry;

        Type
                MyType=Record
                        Title:String;
                        Login:String;
                        Pasword:String;
                end;
		MyArray=array[0..10] of MyType;
                
        var
                MyVarible:MyArray;

        procedure Get(var MyVarible:MyArray);
        procedure Put(MyVarible:MyArray);


implementation

        
	// в реестр у меня всё записывается, а вот прочитать эту переменную почему - то не получается!

	procedure Put(MyVarible:MyArray);
        var
                Reg:TRegistry;
        begin
                Reg := TRegistry.Create;
                try
                        if Reg.OpenKey('\Software\MyProgram', TRUE) then begin
                                Reg.WriteBinaryData('MyVarible',MyVarible,SizeOf(MyVarible));
                        end;
                        Reg.CloseKey;
                finally
                        Reg.Free;
                end;
        end;


	procedure GetSettings(var Settings:TSetting);
        var
                Reg:TRegistry;
        begin
                Reg := TRegistry.Create;
                try
                        if Reg.OpenKey('\Software\MyProgram', TRUE) then begin
                                Reg.ReadBinaryData('MyVarible',MyVarible,SizeOf(MyVarible));
                        end;
                        Reg.CloseKey;
                finally
                        Reg.Free;
                end;
        end;

	

	{  а ещё я делал вот так вот, но всё равно ничего не вышло:

	procedure Put(MyVarible:MyArray);
        var
                Reg:TRegistry;
        begin
                Reg := TRegistry.Create;
                try
                        if Reg.OpenKey('\Software\MyProgram', TRUE) then begin
                                Reg.WriteString('Size',SizeOf(MyVarible));
				Reg.WriteBinaryData('MyVarible',MyVarible,SizeOf(MyVarible));
                        end;
                        Reg.CloseKey;
                finally
                        Reg.Free;
                end;
        end;


	procedure GetSettings(var Settings:TSetting);
        var
                Reg:TRegistry;
        begin
                Reg := TRegistry.Create;
                try
                        if Reg.OpenKey('\Software\MyProgram', TRUE) then begin
                                Reg.ReadBinaryData('MyVarible',MyVarible,Reg.ReadInteger('Size'));
                        end;
                        Reg.CloseKey;
                finally
                        Reg.Free;
                end;
        end;

	}
end.

Я ведь просто что - то не так делаю?? На самом деле её туда можно же записать?

А если нельзя, то как быть??


Зарание спасибо!
Никки вне форума Ответить с цитированием
Старый 09.12.2007, 01:29   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну откройте же вы хэлп по TRegistry, там полно примеров дано!
Вы же даже секцию не открываете!
mihali4 вне форума Ответить с цитированием
Старый 09.12.2007, 13:56   #3
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Стрелка

Для TRegistry:
Код:
        var
                Reg:TRegistry;
        begin
                Reg := TRegistry.Create;
                try
                Reg.RootKey:=HKEY_LOCAL_MACHINE{или другой}; // <= Это НАДО!
                        if Reg.OpenKey('{\ <- Это НЕнадо}Software\MyProgram', TRUE) then begin
                                Reg.WriteBinaryData('MyVarible',MyVarible,SizeOf(MyVarible));
                        end;
                        Reg.CloseKey;
                finally
                        Reg.Free;
                end;
        end;
Можно и TRegIniFile:
Код:
var
    RegIni :TRegIniFile;
begin
 RegIni:=TRegIniFile.Create('Software\MyProgram');
  Try
 RegIni.WriteInteger('Option'{подсекция от Software\MyProgram => MyProgram\Option}, 'top'{Идентификатор}, 150{значение});
  Finally
 RegIni.Free;
  End;
end;
Alter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать скачивание с моего сайта? Sanek777 Работа с сетью в Delphi 1 07.09.2008 17:14
взять переменную из dll Roof Общие вопросы Delphi 15 27.08.2008 16:40
Как активизировать окно моего приложения? _ozzy_ Общие вопросы Delphi 3 10.04.2008 13:25
Ч чём ошибка моего кода сохранения и загрузки? AngelOfDeath Общие вопросы Delphi 3 08.04.2008 13:55
Как обьявить переменную типа AnsiString глобально Kocapb Общие вопросы C/C++ 6 19.12.2007 05:05