Смекни!
smekni.com

Записная книжка на Delphi 7 (стр. 3 из 4)

if FontDialog1.Execute then begin // запустить окно FontDialog1

Memo1.Font:=Fontdialog1.Font; // присвоить значения FontDialog1 компоненту Memo1

8. “Дата и время”

Для того чтобы вставить в Memo1 дату и время есть процедура DateTimeToString. Вставим следующий код в процедуру кнопки OnClick:

var TD: String; //переменная в которую занесётся дата и время

begin

{Заносим в переменную TD дату с параметрами: «Дата» «Месяц» «Год» и время с парамтрами «Часов» «Минут» «Секунд»}

DateTimeToString(TD,'dd mmmm yyyyyy "г." hh:nn:ss ',Now);

Memo1.SelText:= TD; // вставить на место курсора дату и время которое лежит в TD

Настройка главного меню закончено.

Меню: «Экстра» оставляем незаполненным, т.к. нужно создать нужные программы.

Создание часов на главной форме

Для показа времени в Delphi есть ещё одна процедура FormatDateTime, но это процедура показывает время в данный момент когда она была вызвана, для того что каждую секунду обновлялось время, а то есть показывала время, нужно использовать компонент Timer, который находиться на закладке System, палитры компонентов Delphi.

Переносим Timer на форму и в его процедуре OnTimer нужно вставить следующий код:

Label1.Caption:=FormatDateTime('Сейчас: '+' hh:mm:ss AM/PM', Now()); {Изменяем надпись на Label1 на: “Сейчас: ‘Часы’:‘Минуты’:‘Секунды’ ‘AM’ или ‘PM’ ”}

Сохранение настроек программы

Так как нам нужно чтобы сохранялись некоторые параметры программы, то для этого буду использовать ini файл. Для сохранения нужно в процедуре OnClose главной формы вставить следующий код:

uses inifiles;

var

IniFile: TIniFile;

begin

IniFile := TIniFile.Create('Notebook.ini'); // создание ini файла, если его не существует

IniFile.WriteString('MainOptions', 'Base',s);// записать значение переменной S

{Сохранить имя шрифта, компонента Memo1}

IniFile.WriteString('MainOptions', 'Name font',memo1.Font.Name);

{Сохранить размер шрифта, компонента Memo1}

IniFile.WriteInteger('MainOptions', 'Size', memo1.Font.Size);

{Сохранить цвет шрифта, компонента Memo1}

IniFile.WriteInteger('MainOptions', 'Color',memo1.Font.Color);

inifile.Free; // освободить память

- 12 -

Для того чтобы пользователь не забыл сохранить изменения, в OnClose формы, после inifile.free, вставим код, который будет выводить окно с запросом о сохранение изменений:

{вывести сообщение о подтверждении сохранение изменений в файле: «Да» или «Нет»}

case messagedlg('Сохранить изменение ?',mtconfirmation,[mbyes,mbno],0)of

mryes: memo1.Lines.SaveToFile(s); // если «Да» ,то сохранить с именем S

end;

Загрузка настроек программы

Для того чтобы загрузить нам сохранения, нужно в процедуре формы OnCreate вставить следующий код:

var IniFile: TIniFile;

begin

IniFile := TIniFile.Create('Notebook.ini');// читаем или создаём файл ini

s:=IniFile.ReadString('MainOptions', 'Base', '');//заносим в переменную S значение

{выставляем имя шрифта для Memo1}

memo1.Font.Name:=IniFile.ReadString('MainOptions', 'Name font','');

{выставляем размер шрифта для Memo1}

memo1.Font.Size:=IniFile.ReadInteger('MainOptions', 'Size',0);

{выставляем цвет шрифта для Memo1}

memo1.Font.Color:=IniFile.ReadInteger('MainOptions', 'Color', 0);

inifile.Free;

Для того чтобы открылся последний файл который был открыт перед закрытием, нужно OnCreate формы после оператора Inifile.free, вставить следующий код:

memo1.Lines.LoadFromFile(s);//загрузить файл с именем S

Так как, если нужно будет изменить шрифт текста то при запуске окна настройки шрифта там будет все настройки по умолчанию и пройдется менять все параметры, а чтоб этого не делать нужно присвоить значения от Memo1 к FontDialog. Вставим следующий код, после Memo1.Lines.LoadFromFile(s):

FontDialog1.Font:=Memo1.Font;{присвоить все параметры которые находятся в свойстве Font}

На этом создание главной формы закончено. Можно скомпилировать и запустить проект, и если всё сделано правильно, то ошибок не каких быть не должно.

- 13 -

Описание вспомогательных программ, использованных в программе «Записная книжка»

«Справочник друзей»

Постановка задачи

Так как в программе «Справочник друзей» нужно будет записывать телефон, адрес, фамилию и имя человека то нужен компонент который мог бы это разрешить. Можно использовать базу данных для этих целей, но Delphi имеет компонент StringGrid. Для StringGrid’а ненужно дополнительных компонентов, а для работы с базами данных нужно несколько компонентов, которые лишь увеличивают размер программы. На форме будет 3 кнопки: «Добавить» (добавить строку), «Удалить » (удалить выделиную строку), «Выйти» (сохранить и закрыть программу).

Создание интерфейса

В свойстве Caption формы введём текст: ‘Справочник друзей’, а в свойстве формы Name введём имя формы: ‘Dryzi’. В свойстве формы AutoSize нужно выставить True, для то чтобы форма изменяла размер вместе с компонентами.

Перенесём с закладки Additional компонент StringGrid на форму. Выставляем следующие свойства этого компонента:

1.ColCount = 6 (количество столбцов)

2.FixedCols = 0 (зафиксировать(нельзя изменять) первый столбец)

3.FixedRows = 1 (зафиксировать(нельзя изменять) первую строку)

4.RowCount = 2 (количество строк)

5.SrollBars = ssVertical (ползунок вертикального типа)

Перенесём на форму 3 кнопки BitBtn. Эти кнопки даёт возможно прикепить к ним пиктограмму. Назовем кнопки: 1. «Добавить»

2. «Удалить»

3. «Выйти»

Поместим эти 3 кнопки сверху StringGrid1.

Описание процедур и функций

Начнём с кнопок. В кнопку «Добавить» вставляем следующий код:

StringGrid1.RowCount:= StringGrid1.RowCount+1;(добавить строку)

В кнопку «Удалить» вставляем код:

var

i,j: Integer;

begin

j:=StringGrid1.Row; // строка с выделением

StringGrid1.Rows[j].Clear; //очистить выдилиную строку

for i:=j to StringGrid1.RowCount-2 do //цикл нахождения выделиной строки

- 14 -

StringGrid1.Rows[i].Assign(StringGrid1.Rows[i+1]); //

StringGrid1.RowCount:=StringGrid1.RowCount-1; // удалить строку

В кнопку «Выйти» просто вставим один оператор: ‘Close’.

Для каждой кнопки нужно подобрать пиктограму, для этого нужно использовать свойство Glyph.

Так как это справочник, то нужно чтобы все записи сохранялись, при выходе, и загружались, при запуске программы. Для этого в Окне Редактора Кода между словами Type и где объявляются другие процедуры нужно написать: ‘Procedure SaveGrid;’, а после слова implementation нужно вставить следующий код:

procedure TBaseForm.SaveGrid; // имя процедуры

var

f: textfile;

x, y: integer;

begin

assignfile(f, 'Base.zap');// открыть файл ‘Base’

rewrite(f); // переписать файл

writeln(f, StringGrid1.colcount); //просмотр значения столбцов

writeln(f, StringGrid1.rowcount);// просмотр значения строк

for X := 0 to StringGrid1.colcount - 1 do // начало цикла записи значения каждой ячейки

for y := 0 to StringGrid1.rowcount - 1 do

writeln(F, StringGrid1.cells[x, y]);

closefile(f);//закрыть файл

end;

А для загрузки: аналогичным способом объявим процедуру загрузки: ‘Procedure LoadGrid’, а процедура загрузки имеет следующий код:

procedure TBaseForm.LoadGrid;

var

f: textfile;

temp, x, y: integer;

tempstr: string;

begin

assignfile(f, 'Base.zap'); // открыть файл ‘Base’

reset(f); // Сбить файл

readln(f, temp); //Прочитать файл

StringGrid1.colcount := temp; // выставить количество столбцов

readln(f, temp); // прочитать файл

StringGrid1.rowcount := temp; //выставить количество строк

for X := 0 to StringGrid1.colcount - 1 do // начало цикла заполнения каждой ячейки

for y := 0 to StringGrid1.rowcount - 1 do

begin

readln(F, tempstr);

StringGrid1.cells[x, y] := tempstr;

end;

closefile(f); // закрыть файл

end;

- 15 -

Для загрузки нужно в свойство OnCreate формы вставить следующий оператор: ‘LoadGrid;’

Для сохранения нужно в свойство OnClose формы вставить следующий оператор: ‘SaveGrid;’.

Напишем названия колонок, для этого в свойство OnCreate формы вставим следующий код:

with stringgrid1 do begin

Cells[0,0]:=' № '; //названия колонки с координатами

Cells[1,0]:='Фамилия'; //названия колонки с координатами

Cells[2,0]:='Имя'; //названия колонки с координатами

Cells[3,0]:='Отчество'; //названия колонки с координатами

Cells[4,0]:='Адрес'; //названия колонки с координатами

Cells[5,0]:='Телефон'; //названия колонки с координатами

Всё на этом создание программы «Справочник друзей» закончен. Теперь можно скомпилировать и запустить программу. Если всё правильно, то можно сохранить эту программу.

«Media Player»

Постановка задачи

“Media Player” – программа, которая должна воспроизводить музыкальные композиции и видео-файлы. В Delphi есть универсальный компонент MediaPlayer, который выполняет нужные нам функции. Так же на форме будет 2 кнопки для открытия файла и для выхода из программы.

Создания интерфейса

В свойстве Caption формы введём текст: ‘Media Player’, а в свойстве формы Name введём имя формы: ‘MediaP’. В свойстве формы AutoSize нужно выставить True, для то чтобы форма изменяла размер вместе с компонентами.

Переносим компонент MediaPlayer с закладки System на форму. Переносим 2 кнопки BitBtn с закладки Additional и компонент OpenDialog с закладки Dialogs.

Описание процедур и функций

Одну кнопку называем: «Открыть файл», а вторую:«Закрыть».

Настраиваем Filter компонента OpenDialog1: Filter Name: ‘Видео-файлы и музыка’, Filter: ‘*.avi;*.mp3;*.wav’.

В кнопку «Открыть файл» вставляем следующий код:

if opendialog1.Execute then // открытия окна выбора файла

if opendialog1.FileName = '' then writeln ('Вы не выбрали файл!!!')

else begin // или

mediaplayer1.FileName:=opendialog1.FileName; // занести путь к файлу

mediaplayer1.Open;//открыть файл

end;

Теперь в кнопку «Закрыть» нужно вставить оператор ‘Close;’.

Всё на этом создание программы «Media Player» закончен. Теперь можно скомпилировать и запустить программу. Сохраните этот проект.

– 16 –

«CD-Rom»

Постановка задачи

Так как нам нужно только открыть или закрыть лоток CD-Rom’а, то можно использовать только 2 кнопки, потому что при закрытии лотка CD-Rom’а можно и закрыть программу.

Создание интерфейса

В свойстве Caption формы введём текст: ‘CD-Rom’, а в свойстве формы Name введём имя формы: ‘CDRom’.

Перенесём 2 кнопки BitBtn на форму. Подпишим каждую кнопку, например так: «Открыть CD» и «Закрыть CD». Выставим для каждой кнопки соответственную пиктограмму.