ref-21383 (663662), страница 2

Файл №663662 ref-21383 (Записная книжка на Delphi 7) 2 страницаref-21383 (663662) страница 22016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Рис.1.4

Номер кнопки в MainMenu

Когда все ссылки поставили можно выставить картинки на каждую кнопку, просто выбираем свойство TollBar’a – Image и выбираем ImageList1. Все картинки выставятся сами. Теперь можно разделить кнопки на группы, например:

  1. «Новый», «Открыть», «Сохранить»

  2. «Копировать», «Вставить», «Вырезать»

  3. «Поиск»

  4. «Шрифт»

  5. «Дата и время»

  6. «Media Player», «CD-Rom», «Знакомые», «Напомнить о…»

Так как кнопки расположены по порядку, то просто «перетащим» Separator на конец каждой группы кроме последней.

Перейдём к созданию часов.

Берём с закладки Win32, палитры компонентов, компонент CoolBar и перетащим его на форму. CoolBar автоматически поднимется к ToolBar’ у. Перенесём с закладки Standard компонент Label на CoolBar и разместим её ближе к концу CoolBar’a.

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

Рис. 1.5

Скомпилированный и запущенный

проект «Записная книжка»

- 8 -

Описание процедур и функций компонентов главной формы
Заполнения компонента 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’.

  1. “Открыть”

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

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

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

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

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

//программы

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

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

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

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

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

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

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

- 9 -

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

// txt

  1. “Выход”

Для закрытия программы в 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 сохраняет позицию, начиная с которой надо проводить поиск.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. “Шрифт”

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

- 11-

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

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

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

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

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

Для того чтобы вставить в 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 на форму. Выставляем следующие свойства этого компонента:

Характеристики

Тип файла
Документ
Размер
3,2 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов реферата

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6508
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее