ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Реєстр: запісьчтеніе
         

     

    Інформатика, програмування

    Реєстр: запісьчтеніе

    ватажків Сергій

    Робота з системним реєстром в Delphi досить проста. Використання реєстру має деякі переваги перед INI-файлами. Вони полягають в тому, що реєстр -- більш стабільний, і в нього немає обмеження на розмір.

    У Delphi для роботи з реєстром є модуль Registry. Він надає програмісту методи для відкриття, закриття, збереження, переміщення, копіювання і видалення ключів і розділів реєстру.

    Отже, розберемо використання Registry на невеликому прикладі: при закритті програми будемо зберігати положення і розміри форми в реєстрі, а при запуску відповідно зчитувати їх. Для початку Допишемо Registry в розділ uses.

    uses

    Windows, Messages, SysUtils, Variants, Classes Graphics, Controls, Forms,

    Dialogs, Registry;

    Тепер створимо обробник події на закриття форми:

    procedure TForm1.FormCloseQuery (Sender: TObject; var CanClose: Boolean);

    var

    reg: TRegistry;// 1

    begin

    reg: = TRegistry.Create;// 2

    reg.RootKey: = HKEY_CURRENT_USER;// 3

    reg.OpenKey ( 'softwarereg_test', true);// 4

    reg.WriteInteger ( 'top', form1.Top);// 5

    reg.WriteInteger ( 'left', form1.Left);// 6

    reg.WriteInteger ( 'width', form1.Width);// 7

    reg.WriteInteger ( 'height', form1.Height);// 8

    reg.CloseKey;// 9

    reg.free;// 10

    end;

    Розберемо що ж у нас тут робиться:

    1) Оголошуємо змінну reg типу TRegistry - саме цей тип і служить для роботи з реєстром.

    2) Ініціалізіруем змінну для роботи.

    3) Властивість RootKey визначає кореневий розділ.

    4) Метод OpenKey служить для відкриття розділу. Перший параметр - це власне рздел для відкриття, а другий параметр визначає чи створювати цей розділ якщо його не існує.

    5 - 8) Тут ми зберігаємо потрібні параметри форми в певні ключі реєстру. Для цього служать наступні методи:

    WriteBinaryData (const Name: String; var Buffer; BufSize: Integer);

    WriteBool (const Name: String; Value: Boolean);

    WriteCurrency (const Name: String; Value: Currency);

    WriteDate (const Name: String; Value: TDateTime);

    WriteDateTime (const Name: String; Value: TDateTime);

    WriteExpandString (const Name, Value: String);

    WriteFloat (const Name: String; Value: Double);

    WriteInteger (const Name: String; Value: Integer);

    WriteString (const Name, Value: String);

    WriteTime (const Name: String; Value: TDateTime);

    Думаю зрозуміло з назви для збереження якого типу даних служить кожен з перерахованих вище методів. Ну а загалом перший параметр - назва ключа, а другий власне дані. Для запису в ключ за замовчуванням просто залиште перший параметр порожнім, наприклад: WriteInteger ('', 56);

    9) Метод CloseKey використовується для закриття ключа, відкритого функцією OpenKey (див. п.4).

    10) вивантажуємо змінну reg з пам'яті.

    Все тепер при закритті програми вона буде зберігати дані про розмір і положенні форми в реєстрі. Можете перевірити: запустіть програму, а потім вийдіть з неї і подивіться в реєстрі (за допомогою програми regedit) розділ HKEY_CURRENT_USERSoftwarereg_test там і будуть наші дані.

    Тепер нам треба зчитувати дані з реєстру і відповідно змінювати розміри і положення форми. Напишемо обробник події на створення форми:

    procedure TForm1.FormCreate (Sender: TObject);

    var

    reg: TRegistry;

    begin

    reg: = TRegistry.Create;

    reg.RootKey: = HKEY_CURRENT_USER;

    reg.OpenKey ( 'softwarereg_test', true);

    form1.Top: = reg.ReadInteger ( 'top');

    form1.Left: = reg.ReadInteger ( 'left');

    form1.Width: = reg.ReadInteger ( 'width');

    form1.Height: = reg.ReadInteger ( 'height');

    reg.CloseKey;

    reg.Free;

    end;

    Не вивчений метод тут тільки ReadInteger. Ну, як ви напевно здогадалися, цей метод служить для зчитування значення ключа з реєстру. Крім ReadInteger існують ще такі методи:

    ReadBinaryData (const Name: String; var Buffer; BufSize: Integer): Integer;

    ReadBool (const Name: String): Boolean;

    ReadCurrency (const Name: String): Currency;

    ReadDate (const Name: String): TDateTime;

    ReadFloat (const Name: String): Double;

    ReadInteger (const Name: String): Integer;

    ReadString (const Name: String): String;

    ReadTime (const Name: String): TDateTime;

    Ну ось власне і все, ми зробили програму, яка при виключенні зберігає дані про розмір і положенні форми в реєстрі, а під час запуску їх звідти зчитує; можете перевірити.

    Увага! Забороняється передрук цієї статті або її частини без узгодження з автором. Якщо ви хочете розмістити цю статтю на своєму сайті або видати в друкованому вигляді, зв'яжіться з автором.

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://coderpro.fatal.ru/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status