Виртуальная библиотека Delphi - [12]

Шрифт
Интервал

3. Новичку в реестре можно запросто запутаться или (боже упаси), чего-нибудь не то изменить.

Поэтому для хранения параметров настройки программы удобно использовать стандартные INI файлы Windows. Работа с INI файлами ведется при помощи объекта TIniFiles модуля IniFiles. Краткое описание методов объекта TIniFiles дано ниже.

>Constructor Create('d:\test.INI');

Создать экземпляр объекта и связать его с файлом. Если такого файла нет, то он создается, но только тогда, когда произведете в него запись информации.

>WriteBool(const Section, Ident: string; Value: Boolean);

Присвоить элементу с именем Ident раздела Section значение типа boolean

>WriteInteger(const Section, Ident: string; Value: Longint);

Присвоить элементу с именем Ident раздела Section значение типа Longint

>WriteString(const Section, Ident, Value: string);

Присвоить элементу с именем Ident раздела Section значение типа String

>ReadSection (const Section: string; Strings: TStrings);

Прочитать имена всех корректно описанных переменных раздела Section (некорректно описанные опускаются)

>ReadSectionValues(const Section: string; Strings: TStrings);

Прочитать имена и значения всех корректно описанных переменных раздела Section. Формат :

>имя_переменной = значение

>EraseSection(const Section: string);

Удалить раздел Section со всем содержимым

>ReadBool(const Section, Ident: string; Default: Boolean): Boolean;

Прочитать значение переменной типа Boolean раздела Section с именем Ident, и если его нет, то вместо него подставить значение Default.

>ReadInteger(const Section, Ident: string; Default: Longint): Longint;

Прочитать значение переменной типа Longint раздела Section с именем Ident, и если его нет, то вместо него подставить значение Default.

>ReadString(const Section, Ident, Default: string): string;

Прочитать значение переменной типа String раздела Section с именем Ident, и если его нет, то вместо него подставить значение Default.

>Free;

Закрыть и освободить ресурс. Необходимо вызвать при завершении работы с INI файлом

>Property Values[const Name: string]: string;

Доступ к существующему параметру по имени Name

Пример :

>Procedure TForm1.FormClose(Sender: TObject);

>var

>IniFile:TIniFile;

>begin

>  IniFile := TIniFile.Create('d:\test.INI'); { Создали экземпляр объекта }

>  IniFile.WriteBool('Options', 'Sound', True); { Секция Options: Sound:=true }

>  IniFile.WriteInteger('Options', 'Level', 3); { Секция Options: Level:=3 }

>  IniFile.WriteString('Options' , 'Secret password', Pass);

>   { Секция Options: в Secret password записать значение переменной Pass }

>  IniFile.ReadSection('Options ', memo1.lines); { Читаем имена переменных}

>  IniFile.ReadSectionValues('Options ', memo2.lines); { Читаем имена и значения }

>  IniFile.Free; { Закрыли файл, уничтожили объект и освободили память }

>end;

Советы по работе с графикой

Работа с палитрой

Как работать с палитрой в Delphi? На форме установлен TImage и видна картинка (*.BMP файл), как изменить у него палитру цветов ?

Палитра в TBitmap и TMetaFile доступна через property Palette. Если палитра имеется (что совсем необязательно), то Palette<>0:

>procedure TMain.BitBtnClick(Sender: TObject);

>var

> Palette : HPalette;

> PaletteSize : Integer;

> LogSize: Integer;

> LogPalette: PLogPalette;

> Red : Byte;

>begin

> Palette := Image.Picture.Bitmap.ReleasePalette;

> // здесь можно использовать просто Image.Picture.Bitmap.Palette, но я не

> // знаю, удаляются ли ненужные палитры автоматически

> if Palette=0 then exit; //Палитра отсутствует

> PaletteSize := 0;

> if GetObject(Palette, SizeOf(PaletteSize), @PaletteSize) = 0 then Exit;

> // Количество элементов в палитре = paletteSize

> if PaletteSize = 0 then Exit; // палитра пустая

> // определение размера палитры

> LogSize := SizeOf(TLogPalette) + (PaletteSize - 1) * SizeOf(TPaletteEntry);

> GetMem(LogPalette, LogSize);

> try

>  // заполнение полей логической палитры

>  with LogPalette^ do begin

>   palVersion := $0300; palNumEntries := PaletteSize;

>   GetPaletteEntries(Palette, 0, PaletteSize, palPalEntry);

>   // делаете что нужно с палитрой, например:

>   Red := palPalEntry[PaletteSize-1].peRed;

>   Edit1.Text := 'Красная составляющего последнего элемента палитры ='+IntToStr(Red);

>   palPalEntry[PaletteSize-1].peRed := 0;

>   //.......................................

>  end;

>  // завершение работы

>  Image.Picture.Bitmap.Palette := CreatePalette(LogPalette^);

>  finally

>  FreeMem(LogPalette, LogSize);

>  // я должен позаботиться сам об удалении Released Palette

>  DeleteObject(Palette);

> end;

>end;


>{ Этот модуль заполняет фон формы рисунком bor6.bmp (256 цветов)

>и меняет его палитру при нажатии кнопки }

>unit bmpformu;

>interface

>uses

> Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

>type TBmpForm = class(TForm)

> Button1: TButton;

> procedure FormDestroy(Sender: TObject);

> procedure FormPaint(Sender: TObject);

> procedure Button1Click(Sender: TObject);

> procedure FormCreate(Sender: TObject);

>private

> Bitmap: TBitmap;

> procedure ScrambleBitmap;

> procedure WMEraseBkgnd(var m: TWMEraseBkgnd); message WM_ERASEBKGND;

>end;

>var

> BmpForm: TBmpForm;

>implementation

>{$R *.DFM}

>procedure TBmpForm.FormCreate(Sender: TObject);


Еще от автора Неизвестный Автор
Галчонок

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Призраки ночи

В книге собраны предания и поверья о призраках ночи — колдунах и ведьмах, оборотнях и вампирах, один вид которых вызывал неподдельный страх, леденивший даже мужественное сердце.


Закат  вечности

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


mmmavro.org | День 131, Победа

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Песнь о Нибелунгах

…«Песнь о Нибелунгах» принадлежит к числу наиболее известных эпических произведений человечества. Она находится в кругу таких творений, как поэмы Гомера и «Песнь о Роланде», «Слово о полку Игореве» и «Божественная комедия» Данте — если оставаться в пределе европейских литератур…В. Г. Адмони.


mmmavro.org | День 132, Поэт

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Рекомендуем почитать
Графика DirectX в Delphi

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Вторая жизнь старых компьютеров

Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.


DirectX 8. Начинаем работу с DirectX Graphics

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.