Описание процедур и функций компонентов главной формы




 

Заполнения компонента MainMenu1.

 

Меню «Файл»

 

1. “Новый”

 

Так как при создании нового файла будет открываться окно для сохранения нового файла на жесткий диск, то нам нужен компонент SaveDialog с закладки Dialogs. Заходим с главной формы Файл|Новый откроется Окно Редактора Кода и в него вставляем следующий код с комментариями, после слова Begin:

if savedialog1.Execute then begin // Запустить окно сохранения файла

memo1.Lines.SaveToFile(savedialog1.FileName+'.not'); // Сохранить предыдущий текст с

//именем которое ввели в окне сохранения файла

memo1.Clear(); // Очистить компонент Memo от предыдущего текста

end;

s:=savedialog1.FileName+'.not'; // занести в переменную S имя файла (для открытия файла, когда программу вновь запустят и для сохранения в когда программа работает).

Настроим фильтр файлов (типы файлов в которые можно сохранять файлы), для это в SaveDialog1 настроим свойство Filter: Filter Name: ‘Файлы программы’; Filter: ‘*.not’.

 

2. “Открыть”

 

Для открытия файлов в Delphi есть компонент OpenDialog. Перетащим этот компонент с закладки Dialogs на форму и сразу пропишем его свойство Filter так как и в SaveDialog. Заходим Файл|Открыть и вставляем этот код, после слова Begin:

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

memo1.Lines.LoadFromFile(Opendialog1.FileName); // Загрузить в Memo1 файл

S:= OpenDialog1.FileName; // занести в переменную S - имя файла, для открытия когда

//программу вновь запустят и для сохранения изменений в процессе выполнения

//программы

3. “Сохранить”

 

Вставить этот код в свойство OnClick кнопки:

memo1.Lines.SaveToFile(s); // сохранить содержания компонента Memo1 в файл с

//именем которого хранится в переменной S

 

4. “Экспорт данных…”

 

Для этого нужен ещё один компонент SaveDialog и так как файл будет сохраняться в «Текстовый документ», то в свойстве Filter, компонента SaveDialog 2, нужно ввести: Filter Name: ‘Текстовый документ’, а Filter: ‘*.txt’. Теперь вставить следующий код в кнопку:

if SaveDialog2.Execute then // запустить окно сохранения файла

- 9 -

 

memo1.Lines.SaveToFile(Savedialog2.FileName+'.txt'); //сохранить файл с расширением

// txt

5. “Выход”

 

Для закрытия программы в Delphi есть один оператор CLOSE. Вставим этот оператор в кнопку.

 

Настройка меню «Файл» - закончена.

Меню «Правка»

 

1. “Найти”

 

Для поиска нужного текста в Delphi есть компонент FindDialog. Перенесём этот компонент с закладки Dialogs.

Вставляем следующий код в OnClick кнопки:

Spos:=memo1.SelStart; // Запоминание позиции курсора

With finddialog1 do begin

{Начальное значение поиска текста, выделенный в Мемо}

findtext:=memo1.SelText;

// позиционирование окна диалога внизу Memo

position:=point(mainform.Left,mainform.Top+memo1.Top+memo1.Height);

// удолнеия из диалога кнопок “Вверх”, “Вниз”, “Только слово цылеком”

options:=options + [frhideupdown,frhidewholeword];

execute; // запуск диалога

end;

end;

Теперь в OnFind компонента FindDialog1 вставляем следующий код:

With finddialog1 do begin

If frmatchcase in options

//поиск с учётом регистра

then Memo1.SelStart:=pos(findtext,copy(memo1.Lines.Text,spos+1,Length(memo1.Lines.text)))+spos-1

Else

// поиск без учета регистра

Memo1.SelStart:=pos(ansilowercase(findtext),ansilowercase(copy(memo1.Lines.Text,spos+1,Length(memo1.Lines.text))))+spos-1;

if memo1.SelStart>=spos

Then begin

//выделение найденного текста

memo1.SelLength:=Length(findtext);

//изменение начальной позиции поиска

spos:=memo1.SelStart + memo1.SelLength+1;

End

Else

- 10 -

if messagedlg('Текст"'+findtext+'"ненайден',mtconfirmation,[mbok],0) <>mrok

Then

closedialog;

memo1.SetFocus;

end;

Теперь нужно объявить переменную Spos, вверху окна редактора кода нужно найти оператор VAR, перед всеми процедурами и функциями и написать после него Spos:integer;

Переменная Spos сохраняет позицию, начиная с которой надо проводить поиск.

 

2. “Отменить”

 

Для отмены последнего изменения текста, компонент Memo имеет процедуру Undo.

Этот код нужно вставить в кнопку:

 

Memo1.Undo; //отменить последние действие

 

3. “Копировать”

 

Для копирования, в буфер обмена, выделенного текста в компоненте Memo есть процедура CopyToClipboard. Эту процедуру надо вставить в кнопку:

Memo1.CopyToClipboard; // скопировать текст в буфер обмена

 

4. “Вырезать”

 

Для вырезания выделенного текста, в буфер обмена, в компоненте Memo есть процедура CutToClipboard. Эту процедуру надо вставить в кнопку:

 

Memo1.CutToClipboard; // вырезание текста в буфер обмена

 

5. “Вставить”

 

Для вставки текста который лежит в буфере обмена в компоненте Memo есть процедура PasteFromClipboard. Эту процедуру надо вставить в кнопку:

Memo1.PasteFromClipboard; // вставить текст из буфера обмена

 

6. “Очистить”

 

Для того чтобы очистить окно Memo от текста, этот компонент имеет процедуру Clear.

Эту процедуру вставляем в кнопку:

Memo1.Clear; // очистить Memo от текста

 

7. “Шрифт”

 

Для изменения шрифта в Delphi есть компонент FontDialog. Через его свойство Font

 

- 11-

можно изменять свойства разных компонентов имеющие это свойство, в том числе и

компонента Memo. Переносим этот компонент с закладки Dialogs на форму и в процедуре OnClick кнопки пишем следующий код:

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». Выставим для каждой кнопки соответственную пиктограмму.

 

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

Чтобы работала программа нужно подключить модуль MMSystem в USES формы.

Для кнопки которая будет открывать лоток, нужен следующий код:

mciSendString('Set cdaudio door open wait', nil, 0, handle);

Для кнопки которая будет закрывать лоток, нужен следующий код:

mciSendString('Set cdaudio door closed wait', nil, 0, handle);

 

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

 

«Напомнить о…»

 

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

 

Так как нам нужно чтобы через заданное время, выводилось какое либо сообщение, то нам нужно два компонента для выбора промежутка времени (часы и минуты), компонент для ввода нужного сообщения. Так как ещё будет звуковой сигнал, то проще всего будет использовать компонент MediaPlayer. На форме будет писаться сколько осталось время.

 

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

Окно для ввода сообщения и для настройки времени будут находиться внутри компонента GroupBox. Этот компонент нужно перетащить на форму с закладки Standard. Для того чтобы можно было написать сообщение, будем использовать компонент Edit который находиться на той же странице, его нужно перетащить на компонент GroupBox1. Свойство формы AutoSize выставить True.

Теперь перенесём ещё один компонент GroupBox и в него вставим два компонента ComboBox, которые нужны для выбора времени. Перенесём на GroupBox2 компонент CheckBox, который будет показывать воспроизвести аудио-файл или ненужно.

Перенесём на форму 4 кнопки BitBtn. Нужен компонент OpenDialog через который будет

 

- 17 -

выбор аудио-файла, его можно найти на закладке Dialogs.

Нужно 3 компонента Timer. 2 Timer’а будут использоваться в зависимости нужно ли проигрывать аудио-файл или нет, а 3 для показа сколько время осталось. Для всех 3х таймеров в их свойствах Enabled нужно выставить False.

Перенесём на форму MediaPlayer с закладки System в какой то компонент GroupBox,что даст возможность не мешать размерам формы так как MediaPlayer не будет виден.

Когда всё сделать, то расположите все компоненты как показано на рис.2.4

 
 

 

 


Рис.2.4

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

 

 

Изменим надписи на компонентах.

В свойстве Caption формы введём текст: ‘Напомнить о…’, а в свойстве формы Name введём имя формы: ‘Memory’.

Так как в GroupBox1 находиться компонент Edit1 и используется для создании сообщения, то в свойстве Caption компонента GroupBox1 можно ввести: ‘Напомнить о:’.

В свойстве Text, компонента Edit1, нужно стереть текст.

Так как в GroupBox2 находятся два компонента ComboBox которые используется для установки времени, а компонент CheckBox1 для воспроизведения файла, то в свойстве Caption компонента GroupBox2 можно ввести: ‘Настройки’. В свойстве Caption компонента CheckBox1 можно ввести: ‘Воспроизвести аудио-файл’.

Так как Label1 будет показывать счётчик, то в его свойство Caption можно ввести начальное значение счётчика: ‘Осталось: 0 час. 0 мин. 0 сек.’.

Кнопку BitBtn1 подпишем: ‘Аудио-файл’, так как при нажатие на кнопку будем выбирать аудио-файл.

Кнопку BitBtn2 подпишем: ‘Остан.таймер’, так как при нажатие на кнопку будет выключаться таймер.

Кнопку BitBtn4 подпишем: ‘Ok’, так как при нажатие на кнопку программа начнёт свою работу.

Кнопку BitBtn4 подпишем: ‘Закрыть’, так как при нажатие на кнопку будет закрываться программа, но таймер не перестанет работать.

В свойстве Items компонента ComboBox1 нужно вставить названия часов, например, введём, в столбик, без запятых, в столбик: ‘0 часов,1 час,2 часа,3 часа,4 часа,5 часов’. А в ComboBox2 можно вставить, без запятых, в столбик: ‘0 мин.,1 мин.,2 мин.,3 мин.,4 мин.,5 мин.,10 мин.,15 мин.,20 мин.,25 мин.,30 мин.,35 мин.,40 мин.,45 мин.,50 мин.,55 мин.’.

 

- 18 -

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: