Практические задания на делфи 7. Функциональные клавиши калькулятора. Работа с локальной базой данных

Приложения для работы с текстом (например, MS Word) играют важную роль в жизни большинства людей. С помощью таких приложений можно набирать и редактировать текстовые документы, сохранять их на диск, распечатывать и т. д.

Задачи урока

  • Работа с компонентом Memo (многострочный редактор).
  • Работа с компонентом CheckBox (переключатель).
  • Понятие компонента-контейнера.

Выполнение упражнения

Сегодня мы создадим простой текстовый редактор с возможностью очистки содержимого рабочей области (рисунок 1). Этот редактор может пригодиться при работе с текстовыми документами.

В среде Delphi такое приложение сделать очень легко, так как имеющийся в нём компонент Memo уже умеет многое из того, что нужно для текстового редактора: работать с многострочным текстом, с буфером обмена, с диском, вставлять и удалять символы, выделять текст, изменять атрибуты шрифта.

Рисунок 1. Окно приложения

1. Дизайн приложения

1. Поместите компонент Memo (вкладка Standard ) на форму. Также добавьте компонент-контейнер Panel . В нём мы разместим кнопки, управляющие приложением. После этого очистите у компонента Panel свойство Caption и измените заголовок формы на надпись «Текстовый редактор ». Примерный результат работы показан на рисунке 2.


Рисунок 2

Компонент Panel обладает очень важной особенностью. Он является компонентом-контейнером . Если на него поместить другие компоненты, то их перемещение будет ограничено границами компонента-контейнера. При перемещении компонента-контейнера по форме всё его содержимое будет перемещаться вместе с ним.

3. Чтобы понять принцип работы компонентов-контейнеров, посмотрите на содержимое окна Дерево объектов (Object TreeView ) (если его не видно на экране, нажмите комбинацию клавиш Ctrl+Shift+F11 ). В нём хранится список всех компонентов, размещённых на форме (рисунок 3а ). Из него видно, что главный контейнер - это форма (Form1 ). На ней расположены два компонента: Memo1 и Panel1 .

А) б) в)
Рисунок 3

4. Увеличьте размер панели до размеров, в двое больших чем многострочный редактор. Измените контейнер у компонента Memo1 с Form1 на Panel1 . Для этого в окне Дерево объектов методом Drag and Drop (Перетащить и оставить) перетащите компонент Memo1 из формы (Form1 ) на панель (Panel1 ), как показано на рисунке 3б . В результате вы увидите, что панель стала обладателем многострочного редактора Memo (рисунок 3в ). Теперь перемещение панели приведёт и к перемещению многострочного редактора.

5. Измените контейнер у компонента Memo1 с Panel1 на Form1 .

3. В принципе, текстовый редактор уже готов. Сохраните проект под именем Editor .

4. Запустите приложение и убедитесь, что вы можете легко набирать и редактировать текст в поле Memo .

Итак, наше приложение, созданное с помощью нескольких нажатий мыши, уже позволяет редактировать текст, и это «плюс». Рассмотрим «минусы»:

  • при запуске приложения компонент Memo содержит совершенно ненужную надпись «Memo1 «;
  • при изменении размеров формы размер поля Memo не меняется, что выглядит некрасиво: при увеличении окна появляется много свободного места, а при уменьшении - появляются полосы прокрутки.

5. Чтобы удалить надпись «Memo1 » в компоненте Memo , необходимо у него очистить свойство Lines (рисунок 3а). Это аналог свойства Text компонента Edit , только в данном случае текст можно вводить многострочный. Итак, в компоненте Memo напротив свойства Lines нажмите на кнопку с тремя точками. Откроется дополнительное окно (рисунок 3б). Удалите весь содержащийся там текст.

А) б)
Рисунок 3

6. Настроим компонент Memo так, чтобы его границы автоматически изменялись при изменении размеров формы с помощью свойства Align (переводится как «выровнять»). Как видно из рисунка 1, компонент Panel должен «прилипнуть» к верхней части окна (Align = alTop ), а компонент Memo должен занять всю остальную площадь (Align = alCliеnt ). Результат показан на рисунке 4а.

7. Запустите приложение и поменяйте размер формы. Размеры компонентов динамически изменятся в зависимости от её размеров. Закройте приложение.

А) б)
Рисунок 4

8. В компонент Panel добавьте четыре кнопки Button и измените их заголовок, как показано на рисунке 4б. Назначение кнопок понятно из их заголовка (свойства Caption ). Дадим им следующие имена (свойство Name ): «Новый » - ButtonNew , «Открыть » -ButtonOpen , «Шрифт » - ButtonFont , «Выход » - ButtonExit , Memo1 - MemoOut .

Отметим, что кнопки «Открыть » и «Шрифт » заработают во второй части этого урока. Сейчас мы просто создаём общий интерфейс.

9. Добавьте из категории Standart в контейнер Panel компонент CheckBox (переключатель). Он будет выполнять функцию быстрого изменения атрибута шрифта «Жирный ». Переименуйте его (измените свойство Name ) в CheckBold (Bold переводится как жирный). Работа с этим компонентом также будет рассмотрена во втором разделе урока. Измените заголовок переключателя (свойство Caption ) на «Жирный » (рисунок 4б).

10. Установите свойство AutoSize=True для панели Panel. Размер панели автоматически изменится так, чтобы вместить все находящиеся на нём компоненты (рисунок 4б).

11. Запустите приложение. У нас получился почти полноценный редактор текста. Но вот беда… Текст мы вводить можем, но ни одна кнопка не работает. Для исправления этого досадного обстоятельства необходимо написать обработку событий OnClick для каждой кнопки.

Закройте приложение.

2. Выходим из приложения

Создайте обработчик события OnClick для кнопки «Выход »

3. Очистим редактор!

1. Выберите кнопку «Новый » и создайте для неё обработчик события OnClick . В нём запишем всего один метод для компонента Memo - Clear , который очищает содержимое этого компонента:

Procedure TForm1.ButtonNewClick (Sender: TObject); begin MemoOut.Clear; end;

Листинг 1

2. Запустите приложение. Теперь мы имеем простейший текстовый редактор с функциями:

  • очистки рабочей области;
  • работы с многострочным текстом;
  • вставки и удаления символов;
  • выделения текста;
  • работы с буфером обмена через горячие клавиши или контекстное меню.

Закройте приложение.

4. Коротко о главном

  • Компонент Memo обладает свойствами многострочного текстового редактора.
  • Свойство Align указывает, к какой стороне окна прижать компонент.
  • Логическое свойство AutoSize определяет, будет ли у компонента автоматический размер, в зависимости от его содержимого.
  • Компонент-контейнер – это компонент, который может содержать другие компоненты. Используется для смыслового объединения компонент.
  • Окно Дерево объектов дает возможность быстрой смены контейнера для компонентов;

Второй раздел урока: Текстовый редактор, или А мы ещё файлы открывать умеем и шрифт изменять тоже…

Выполнение упражнения

Для загрузки текстовых файлов в компонент Memo и изменения параметров шрифта будем использовать стандартные диалоговые окна Windows Шрифт (рисунок 1б) и Открыть (рисунок 1в).

А) б)
в)
Рисунок 1. Окно приложения

1. Открываем файл

1. Откройте проект, созданный в предыдущем разделе урока № 4 - Текстовый редактор, или Наберём и очистим!

2. Из палитры компонентов, категории Dialog , поместите на форму невизуальные компоненты: FontDialog и OpenDialog . В какое место формы мы их поместим, это неважно, потому что они видны только на этапе разработки приложения.

  • Компонент FontDialog - вызывает окно стандартного диалога выбора параметров шрифта Шрифт .
  • Компонент OpenDialog - вызывает окно стандартного диалога выбора файлов Открыть .

Двойной щелчок по этим компонентам открывает стандартный диалог (не событие, как это было у привычных для нас компонентов). Это диалоговое окно будет появляться при обращении к нему из работающего приложения (или, как говорят, в режиме RunTime). Это очень удобно, т. к. в режиме конструирования (или, как говорят, в режиме DesignTime) можно посмотреть, как выглядит окно диалога.

3. Создайте обработчик события OnClick для кнопки «Открыть ». Он должен:

  • вызывать стандартный диалог открытия файлов;
  • загружать указанный пользователем файл в многострочный редактор (компонент Memo ).

Запишите в обработчике следующий код:

procedure TForm1.ButtonOpenClick(Sender: TObject); begin // Вызываем диалог открытия OpenDialog1.Execute; end ;

Листинг 1

Метод Execute служит для вызова стандартного диалога Windows у всех компонентов (для каждого компонента свой диалог), находящихся на вкладке Dialogs .

Обратите внимание на текст, находящийся после знаков «// », он по умолчанию в Delphi выделен синим цветом. Это комментарии - второй по значимости текст после кода программы. Чтобы не запутаться в написанной программе, необходимо комментировать практически каждую написанную вами строку!

4. Запустите приложение и убедитесь, что при выборе пункта «Открыть » появляется одноимённое диалоговое окно. Однако какой бы файл вы не выбрали, ничего не произойдёт. Это вполне логично - ведь в обработчике нигде не сказано, что нужно делать с выбранным файлом. Закройте приложение.

5. Для того чтобы выбранный файл загружался в многострочный редактор, допишите в обработчик следующий код (выделено жёлтым):

Procedure TForm1.ButtonOpenClick(Sender: TObject); begin // Вызываем диалог открытия OpenDialog1.Execute; // Загружаем содержимое файла в компонент MemoOut MemoOut.Lines.LoadFromFile (OpenDialog1.FileName); end;

Листинг 3

Что это означает? После того как пользователь выбирает файл и нажимает кнопку «Открыть », путь и имя файла помещаются в свойство Filename компонента OpenDialog. Потом содержимое этого файла загружается в многострочный редактор. Для этого используется метод LoadFromFile класса TStrings. Для доступа к этому классу используется свойство компонента Lines .

6. Запустите приложение и откройте любой файл (для примера, в папке «Обеспечение » есть текстовый файл «Demo.txt »). Его содержимое появится в поле компонента Memo, и вы сможете его редактировать.

Закройте приложение и снова запустите. Опять выберите пункт «Открыть «, но в диалоговом окне нажмите кнопку «Отмена «. В результате появится сообщение об ошибке (рисунок 2).


Рисунок 2

Здесь сказано: «Проект Editor.exe вызвал исключение класса EFOpenError с сообщением ‘Не могу открыть файл ‘. Процесс остановлен. Используйте команды Step или Run для продолжения».

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

Нажмите «ОК «. При этом вы увидите текст программы (рисунок 3). Цветом будет выделено то место, в котором программа остановилась. Вы можете нажать F9 , чтобы продолжить программу с этого места (при этом вы увидите сообщение об ошибке ещё раз) или Ctrl+F2 (пункт меню Run ? Program Reset ), чтобы завершить программу.



Рисунок 3

7. Исправим ошибку. Всё дело в том, что вы не выбрали никакого файла, в результате свойство FileName осталось пустым, и метод LoadFromFile не смог открыть файл с пустым именем. Таким образом, необходимо вставить проверку, чтобы файл загружался только в том случае, если нажата клавиша «Открыть » (и действительно: зачем что-то загружать, если пользователь нажал «Отмена «).

Сделать такую проверку очень легко. Метод Execute возвращает логическое значение True (истина), если была нажата кнопка «Открыть «, и False (ложь), если была отмена. Остаётся только проверить это значение с помощью оператора условного перехода:

Procedure TForm1.Button2Click(Sender: TObject); begin // Вызываем диалог открытия и проверяем условие нажатия на кнопку «ОK» If OpenDialog1.Execute then //Загружаем содержимое файла в компонент MemoOut Memo1.Lines.LoadFromFile(OpenDialog1.FileName); end;

Листинг 4

Обратите внимание, что в условии написано OpenDialog1.Execute , вместо OpenDialog1.Execute=True . Эти две записи полностью идентичны, но первая более простая и рекомендуется использовать именно её.

8. Запустите приложение и убедитесь, что теперь всё работает корректно.

Заметьте, что при вызове диалога открытия появляется список всех файлов, которые есть в выбранном каталоге. Но нам не нужен весь список. В приложениях типа Word, Photoshop и многих других в нижней части диалога открытия файлов есть выпадающий список «Тип файлов » (рисунок 4а). С его помощью можно выбрать только те типы файлов, которые будут отображаться в окне.

9. Для того чтобы пользователь мог редактировать фильтр диалога открытия файлов, у компонента OpenDialog есть свойство Filter . Откройте редактор фильтра, нажав на кнопку с тремя точками (рисунок 4б). В левой его части, построчно, записываются имена фильтров, которые будут отображаться в поле «Тип файлов », а в правой непосредственно сам фильтр (правила задания фильтрации стандартные для Windows)

а)
б)
Рисунок 4. Фильтр выбора файлов

10. Заполните три строки фильтрами, как показано на рисунке 4б. При выборе первого поля диалог открытия файлов отобразит только текстовые файлы с расширением txt . Второе поле отображает файлы с расширением pas , и третье отобразит все файлы.

2. Форматируем текст

1. И, наконец, оживим инструменты форматирования текста (кнопка «Шрифт » и переключатель «Жирный »).



Рисунок 5. Диалог выбора параметров шрифта

При нажатии на кнопку «Шрифт » должны происходить следующие действия:

  • все параметры шрифта (название, размер, цвет, стиль и пр.) компонента MemoOut передаются компоненту FontDialog. При этом в стандартном диаловом окне Windows Шрифт автоматически выставляются требуемые параметры;
  • открывается стандартный диалог шрифта (рисунок 5);
  • проверка, что пользователь нажал на кнопку «ОK », чтобы программе не прогонять оставшиеся два пункта вхолостую;
  • передача компоненту MemoOut параметров шрифта из компонента FontDialog;
  • изменение, если необходимо, состояния переключателя CheckBold .

Создайте обработчик события OnClick для кнопки «Шрифт » и запишите в нём следующий код:

Procedure TForm1.ButtonFontClick(Sender: TObject); begin // Передаём компоненту FontDialog параметры шрифта из компонента Memo FontDialog1.Font:= MemoOut.Font; // Открываем диалог шрифта If FontDialog1.Execute then begin // Передаём компоненту Memo параметры шрифта из компонента FontDialog MemoOut.Font:= FontDialog1.Font; // Изменяем, если необходимо, состояния переключателя CheckBold.Checked:= fsbold in FontDialog1.Font.Style; end; end;

Листинг 5

Поясним код:

Замечательной особенностью объектно-ориентированного программирования является возможность присвоения одинаковых значений одного компонента другому, если они принадлежат одному классу. Например, свойство Font (размер шрифта, цвет и пр.) класса TFont присутствует в объектах Memo и FontDialog , поэтому достаточно написать: FontDialog1.Font:=MemoOut.Font , чтобы передать все параметры свойства Font от объекта Memo объекту FontDialog .

Отметим особенность установки состояния переключателя «жирный »: fsbold in FontDialog1.Font.Style . Дело в том, что свойство Style у класса Font имеет тип множество. И данная конструкция означает проверку: входит ли значение fsbold в множество значений Style , и если входит, то возвращает значение True , иначе False.

2. Теперь запустите приложение и порадуйтесь, как легко изменять параметры шрифта с помощью стандартного диалога, специально для этого предназначенного.

3. Переключатель CheckBox с именем CheckBold на панели Panel предназначен для более быстрой установки жирного шрифта. Создайте обработчик события OnClick для переключателя и запишите в нём следующий код:

Procedure TForm1.CheckBoldClick(Sender: TObject); begin // Проверка состояния переключателя CheckBold // Если включен, то текст в MemoOut делаем жирным If CheckBold.Checked then MemoOut.Font.Style:= MemoOut.Font.Style + // Если выключен, то текст в MemoOut делаем светлым else MemoOut.Font.Style:= MemoOut.Font.Style - end;

Листинг 6

Изменение стиля шрифта через компоненты CheckBox осуществляется через всё то же свойство Font.Style . Синтаксис записи соответствует работе с множествами.

4. Теперь в последний раз запустите приложение. Всё работает? Отлично!

3. Коротко о главном

  • Для открытия диалога всех компонентов, расположенных в категории Dialogs палитры компонентов, служит метод Execute .
  • Метод Execute возвращает значение логического типа, определяющее результат работы с диалоговым окном.
  • Стиль шрифта (Style ) задаётся через множество.
  • В случае появления сообщения об ошибке, клавишей F9 можно продолжить работу приложения.
  • В диалоге открытия файлов можно задавать любое количество фильтров для типов файлов, по правилам Windows.

Выполнение заданий

Особенности задания

  • Для полей ввода Edit необходимо ввести поясняющие надписи с помощью компонента Label.
  • Компоненты должны иметь осмысленные имена.
  • Кнопка выхода из приложения - обязательна!

Практическая работа №1

Тема: ПЕРВЫЙ ПРОЕКТ

Цель занятия: использование компонентов Label (метка) и Button (кнопка) палитры компонентов Standard, обработка события OnClick - нажатие кнопки.

Задача №1.

Создать программу, выполняющую следующие действия:

После запуска программы по щелчку мышью на кнопке «Приветствие» появляется сообщение «Первые успехи!». Для выхода из программы необходимо щелкнуть мышью на кнопке «Выход».

Новым в этой работе является:

Этапы разработки программы

1. Откройте новый проект.

2. Разместите в форме экземпляры компонентов: метку Label и две кнопки Button

3. Выделите кнопку Button2, перейдите в Object Inspector на вкладку Properties, найдите свойство Caption (заголовок) и измените Button2 на заголовок

«Выход». Перейдите на страницу Events окна Object Inspector, найдите событие OnClick, справа от него дважды щелкните мышью. Оказавшись в коде программы, точнее, в заготовке процедуры TForm1.Button2Click, напишите лишь одну команду Close; (обязательно поставьте точку с запятой после «Close»).

procedure TForm1.Button2Click(Sender: TObject);

begin

Close;

end;

4. Сохраните код программы и проект под именами, например, Unit2.pas и Pr2.dpr.

5. Запустите программу, затем закрыть окно проекта, щелкнув на кнопке «Выход».

6. Выделите форму, в свойстве Caption окна Object Inspector замените слово Form1 на «Мой проект». Это и будет заголовком основного окна программы.

7. Выделите кнопку Button1, в свойстве Caption окна Object Inspector замените слово Button1 на название копки «Приветствие». При необходимости увеличьте длину кнопки.

8. Не снимая выделения с кнопки Button1, перейдите на страницу Events окна Object Inspector и найдите событие OnClick, справа от него дважды щелкните

мышью. Введите следующий код: Label1.Caption:= ’Первые успехи!’;

9. Сохраните проект окончательно, запустите и протестируйте его.

Задача №2.

1. Сделайте шрифт выводимой реплики «Первые успехи!» отличным от стандартного по виду, цвету и размеру.

2. Замените вид кнопки «Выход» на более привлекательный.

3. Сделайте так, чтобы после нажатия кнопки «Приветствие» на экране появлялось сообщение «Первые и не последние!».

4. Запустите исполняемый файл Pr2.exe не в среде Delphi, а в Windows.


По теме: методические разработки, презентации и конспекты

Урок - обобщение знаний по теме "Устройство компьютера". Основной акцент делается на устройстве ввода информации в компьютер - клавиатуре. Для работы в графическом редакторе Paint разработаны практиче...

Самостоятельная работа по инструментам форматирования текста и две практические работы в MS Word 2007

Небольшая самостоятельная работа для закрепления материала.Две практические работы по созданию и обработке таблиц в текстовом редакторе....

Цели занятия.

Образовательные: изучить современную технологию создания приложения путем применения компонентов среды Delphi; изучить технологию ADO, обеспечивающую соединение с базой данных Microsoft Access; научить проектировать приложение и обеспечить доступ к БД MS Access “Детская поликлиника”.

Развивающие: развивать умение у обучающихся анализировать, делать самостоятельный вывод, а также развивать самоконтроль и взаимоконтроль.

Воспитательные: способствовать формированию таких качеств личности, как ответственное отношение к порученному делу; внимательность, способность к самовыражению.

ПО: Microsoft Access, Borland Delphi7, готовая рабочая база данных “Детская поликлиника”.

Задание

Задание: Создать проект в Borland Delphi 7 и обеспечить доступ к ранее созданной БД Microsoft Access “Детская поликлиника”, используя компоненты среды Delphi, получить информацию из базы данных и представить ее в форме таблицы.

В Microsoft Access создана база данных “Детская поликлиника” и наполнена информацией (приложение).

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

  • информацию о враче (фамилия, специализация, стаж, оклад, совместительство);
  • данные о больном (фамилия, возраст, адрес, детское учреждение, место работы родителей, хронические заболевания, прививки, последнее обращение к врачу);
  • данные о детском учреждении (наименование, адрес, количество детей, наличие карантина, выявленные инфекционные заболевания, дата последнего профилактического обследования).
  • список детских учреждений, в которых зафиксированы инфекционные заболевания.

Среда разработки проекта в Delphi

Delphi – это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi – строго типизированный объектно-ориентированный язык, в основе которого лежит Object Pascal. Интегрированная среда позволяет создавать, компилировать, тестировать и редактировать проект в единой среде программирования .

Работа над новым проектом,

Форма (Form) – основа разработки в нее помещают необходимые компоненты, создают интерфейс программы. Свойства формы определяют ее внешний вид: размер, положение на экране, текст заголовка, др.

Для просмотра и изменения значений свойств формы и ее компонентов используется окно Object Inspector (Инспектор Объектов). В верхней части окна Object Inspector указано имя объекта, значения свойств которого отображается в данный момент. В левой колонке вкладки Properties (Свойства) перечислены свойства объекта, а в правой – указаны их значения (рис.1). Инспектор Объектов является дизайнером формы.

Исходный текст модуля разработки содержится в Окне редактора и имеет первоначальный заголовок Unit1.pas (рис.1). Проводник кода отображает объекты модуля формы (*pas) , что позволяет быстро обращаться к объектам и создавать новые классы.

Рис. 1. Основные элементы среды разработки в Delphi

Файл модуля формы Unit1.pas (рис.1) содержит описание класса формы (размещение, поведение компонентов и функционирование обработчиков событий) и создается автоматически.

Любой проект имеет не менее шести файлов (табл.1).

Таблица 1

Основные файлы проекта

Назначение

Главный файл проекта (код проекта) – PROGECT.DPR Основной, представляет собой программу на языке Pascal.
Первый модуль программы (модуль формы) UNIT.PAS Автоматически появляется вначале работы его можно назвать любым другим именем. Содержит текст программы на языке Pascal.
Файл главной формы (описания формы) – UNIT.DFM Используется для сохранения информации о внешнем виде главной формы.
Файл описание ресурсов – PROGECT.RES Содержит иконку для проекта, создается автоматически.
Файл параметры проекта – PROGECT.OPT Текстовый файл для сохранения установок, связанных с данным проектом.
Модули - *.PAS Дополнительные Модули. Содержат текст программы на языке Pascal.

Разработка приложения состоит из двух этапов:

1. Создание интерфейса приложения.

2. Определение функциональности приложения.

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

Для обеспечения функциональности приложения необходимо задать в Инспекторе Объектов значения свойств и процедур объектов событий, написать программный код обработки событий.

Установить измененные параметры проекта необходимо с помощью команды меню Project/Построить Project . Если требуется объединить несколько форм под единое начало – выполнить команду Project/Options.

Компиляция является обязательным процессом – процессом перевода всей программы с последующим исполнением. Данный процесс может быть выполнен на любой стадии разработки проекта. Компиляция создает:

Готовый к выполнению файл (*exe),

Динамически загружаемая библиотека (*DLL).

Запускать проект можно из среды Delphi командой Run/Run (Выполнить), из среды Windows (Название приложения .exe).

Создание приложения для работ с БД Access

Работа над новым проектом, так в Delphi называется разрабатываемое приложение, начинается с создания стартовой формы.

Создание закладок в конструкторе форм.

1. В Инспекторе Объектов изменить параметры некоторых свойств: Align -> alClient, color->clMoneyGreen, caption->Детская поликлиника, font, name->Form (рис.1).

2. Создать закладки в конструкторе форм при помощи компонента PageControl на вкладке Win32 (таб.2) (Win32->PageControl).

3. В окне Дерево Объектов создать Страницу (Контекстное меню->Новая страница). В Инспекторе Объектов изменить параметры названия (Сaption->Больной) (рис.2).

Рис. 2. Создание закладок в конструкторе форм

4. Аналогичным способом создать закладки, названия которых соответствуют названию таблиц в схеме данных БД MS Access (рис.7).

5. Поместить на форму компонент ADOConnection (вкладка ADO> ADOConnection) и выполнить его настройку (табл.2; рис.3).

      Таблица 2

      Значения свойств компонента ADOConnection

    Свойство Примечание
    PageControl Набор панелей с закладками. Каждая панель может содержать свой набор интерфейсных элементов и набирается щелчком по связанной с ней закладке.
    Вкладка Win32 Содержит интерфейсные элементы для 32 разрядных операционных систем Windows 2000.
    LoginPromt False
    ConnectionString Сделать щелчок на кнопке с тремя точками (находится в поле значения свойств). Сделать щелчок на кнопке Build.

    На вкладке поставщик данных выбрать Microsoft Jet 4.0 OLEDB Provider.

    На вкладке Подключение указать файл базы данных “Детская поликлиника”.

    Дополнительно указать Права доступа: ReadWtite.

Для включения асинхронного режима необходимо установить свойство ConnectOptions компонента TADOConnection в значение coAsyncConnect. В этом случае новые запросы будут выполняться, не ожидая ответа от предыдущих запросов.

Рис.3. Настройка ADOConnection в параметрах Инспектора Объектов

6. Поместить на форму компонент ADOTable(ADODB) (Вкладка ADO->ADOTable) и выполнить его настройку (табл.3; рис.3).

    Таблица 3

    Значения свойств компонента ADOTable(ADODB)

    Свойство Значение Примечание
    Connection Имя компонента ADOConnection, обеспечи-вающего соединение с БД
    TableName Команда, обеспечивающая получение информации из определенной таблицы БД Раскрыть список, находящийся в поле значения свойства, и выбрать название нужной таблицы
    Active True
    Технология ADO Это синхронное/асинхронное выполнение операций с хранилищем данных. При помощи свойства connectoptions можно задать режим соединения с хранилищем данных
    TADODataSet TADOCoommand Общие компоненты для работы с технологией ADO, позволяют выполнять команды на языке провайдера данных.
    DataSource Object Хранилище данных.

7. Поместить на форму компонент DataSource (вкладка Data Access -> DataSource) и выполнить его настройку (табл. 4; рис.3)

    Таблица 4

    Значения свойств компонента DataSource

8. Поместить на форму компонент DBGrid (вкладка Data Controls->DBGrid) и выполнить его настройку (табл.5; рис.3)

    Таблица 5

    Значения свойств компонента DBGrid, Edit, Button

Свойство Значение Примечание
DataSource Имя компонен-та DataSource Раскрыть список, находящийся в поле значения свойства, и выбрать имя компонента
Align alClient
DBGrid Компонент предназначен для визуализации данных, их ввода и редактирования.
Edit Строка ввода. Предназначена для ввода, отображения или редактирования одной текстовой строки.
Button Командная кнопка. Обработчик события OnClick этого компонента обычно используется для реализации некоторой команды.

9. Аналогично создать другие графы таблицы (проекта “Детская поликлиника”). На рисунке 4 представлен результат правильно выполненных действий задания.

10. В графе “Зафиксированные инфек.заболевания” выполним запрос по датам обследования.

Для этого добавить компонент ADOQuery(ADODB). Значения данного компонента соответствуют значениям свойств компонента ADOTable(ADODB). В параметрах Инспектора Объектов введем SQL – команду:

ADOQuery1.Clear:= True;

ADOQuery1.Add("SELECT DU.DU, DU_Adres.DU, DU.Inf_Zab, DU.Data_obs");

ADOQuery1.Add("FROM DU");

ADOQuery1.Add("WHERE ((DU.Data_Obs) BETWEEN (DateValue(""" + Edit1.Text + """)) AND (DateValue(""" + Edit2.Text + """)));");

ADOQuery1.Active:= True;

11. Поместить на форму компонент Edit1 и Edit2. В параметрах этих компонентов укажем дату по умолчанию: Edit1->Text->01.01.2009; Edit2->Text->31.12.2009.

12. Поместить на форму компонент Button (рис.5).

13. Создать процедуру обработки события Click, обеспечивающую выполнение SQL – команды.Процедура обработки события Click на кнопке “Обновить запрос” (Button1):

procedure TF.OtClick(Sender: TObject);

      sqlfile: TextFile;

      ADOQuery1.SQL.Clear;

      ADOQuery1.SQL.Add("SELECT DU.DU, DU.Adres_DU, DU.Inf_Zab, DU.Data_obs");

      ADOQuery1.SQL.Add("FROM DU");

      ADOQuery1.SQL.Add("WHERE ((DU.Data_Obs) BETWEEN (DateValue(""" + Edit1.Text +""")) AND (DateValue(""" + Edit2.Text + """)));");

      ADOQuery1.Active:= True;

      AssignFile(sqlfile,"sql_instructions.txt");

      Rewrite(sqlfile);

      for i:= 0 to ADOQuery1.SQL.Count-1 do Writeln(sqlfile, ADOQuery1.SQL.Strings[i]);

      CloseFile(sqlfile);

      Рис.5. Окно конструктора формы. Закладка “Зафиксированные инфекционные заболевания

    1. 14. Последний этап. Создание исполняемый файл – приложение Project1.exe при помощи процесса компиляции (Project/Compile). Компилятор генерирует исполняемую программу как консольное приложение. Пример работы программы, т.е. вид окна программы после выполнения представлен на рис.6.

Рис.6. Исполняемый файл – приложение Project1.exe

Готовый проект - приложение в Delphi представлен в приложении .

Литература

  1. Дарахвелидзе П.Г., Марков Е.П. Программирование в Delphi 7. - СПб: БХВ – Петербург, 2003.
  2. Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi 7. – СПб: БХВ – Петербург, 2007.
  3. Петров А. и др. Вычислительная техника и программирование. Высшая школа, 2008.
  4. Internet: www.PowerBuilder.sbn

1. Вычисление явно заданной функции. Сделать программу,и консольный вариант программы, вычисления значения функции. Реализовать проверку области определения данной функции. Использовать компоненты Label, Edit, Button, BitBtn, LabeledEdit. Нарисовать значок в (ImageEditor) и использовать его в программе. Подобрать соответствующие изображения указателя (Cursor). Сделать возможным изменение прозрачности формы (AlphaBlend). Изменить тип границы формы, параметры шрифта, цвета элементов управления. Использовать подсказки (Hint). Использовать ShowMessage для сообщения об ошибках.

2. Определение принадлежности точки замкнутой области.

Задание: Написать программу определения находится ли заданной точка в данной области.

Использовать компоненты: Image, MainMenu, PopupMenu, Checkbox, RadioButton и ActionList.

Реализовать програмную провверку правильности ввода данных.

3. Вычисление значений конечной суммы ряда.

Задание: Вычислить сумму степенного ряда. Использовать несколько форм. Разместить условия на первой форме, остальные данные и функционал на других формах.

Использовать компоненты: Shape, Bevel, Splitter.

Использовать формы в модальном режиме и в обычном. Использовать шаблоны форм, поместить их в хранилище объектов.

4. Обработка одномерных массивов.

Написать программу обращения с вектором данных.

Задание: Делением числовых данных данного вектора на сумму наибольшего и наименьшего. получить новый вектор чисел.

Использовать компоненты: Memo, ListBox.

5. Обработка двумерных массивов(матрицы).

Использовать: PageControl, StringGrid, Закладки, блок try...except.

Задание: Упорядочить строки, данной матрицы чисел, по убыванию элементов, стоящих в определенном столбце.

6. Обработка строк.

Работа с данными строкового типа.

Использовать компоненты: ImageList, RichEdit, ToolВаr.

Задание: Получить новую строку, поменяв первое и последнее "слова". Использовать функции или процедуры, а так же модули.

7. Нарисовать график заданной функции.

Использовать: OnResize, ClientHeight, ClientWidth, OLEContainer, TEdit, Chart.

8. Создание анимированного изображения.

Требования к программе: Два двигающихся с разной скоростью обьекта. Один как процедура, отрисовав отдельные дуги, линии с помощью метода базовой точки. Второй нарисованный в ImageEditor, изменяя свойства Left и Top поместить в компонент Image. Использовать Timer. Реализовать остановку и изменение направления движения.

Задание: Объекты "Катер" и "Яхта".

9. Работа с типизированными файлами.

Использовать компоненты: OpenDialog, SaveDialog. Создать соответствующие фильтры для этих компонентов.

Задание: Дан файл вещественных чисел. Найти среднее арифметическое его компонент и удалить все компоненты, превышающие среднее значение.

10. Работа с локальной базой данных.

Использовать: Paradox для БД, механизм доступа к данным BDE, DataSource, Table, DataModule, DBGrid, DBNavigator, DBEdit, DBText, Query и DBChart. Реализовать программное изменение текста SQL-запроса.

Задание: Создать БД "Школа", с информацией: фамилия, класс, год рождения учащегося, адрес, телефон. Определить, у скольких учеников есть телефон. Составить списоки учеников заданного класса.

Документы в архиве:

    Воробьева Анжелика Анатольевна

    Преподаватель математики и информатики

    ГОУ СПО СПбХУ им. Н.К. Рериха (техникум)

    г. Санкт-Петербург

    Практические работы разработаны к разделу «Введение в объектно-ориентированное программирование»
    учебника Фиошина М.Е., Ресина А.А., Юнусова С.М. - «Информатика и ИКТ. 10-11 классы. Профильный уровень», с использованием визуальной системы программирования Delphi . Модуль состоит из четырех практических работ линейного программирования:

    ПР №1 «Создание первого приложения»;

    ПР №2 «Компоненты и функции. Умножение двух чисел»;

    ПР № 3 «Решение задач»;

    ПР №4 «Использование функций при решении задач».

‹ ›

Название документа ПР №1.doc

Тема: Практическая работа №1 «Создание первого приложения»

Предмет: Информатика и ИКТ

Класс: 10

Литература:

Ключевые слова:

Задача:

Создать приложение, в котором при щелчке пользователя на кнопке появилась бы какая-нибудь надпись. Знакомство с компонентами TLabel , TButton

Ход работы:

Задайте имя форме «Мое первое приложение», для этого в Object Inspector измените параметр Caption

    Перенесите на пустую форму, которая открылась вам, кнопку типа TButton со страницы Standard палитры компонентов. Для этого выделите пиктограмму кнопки (она седьмая слева) и затем щелкните курсором мыши в нужном вам месте формы. На форме появиться кнопка, которой Delphi присвоит имя по умолчанию Button 1.

Выделите на форме компонент TButton 1- кнопку. Перейдите в Object Inspector и измените её свойство Caption (надпись), которое по умолчанию равно Button 1(имя, которое по умолчанию присвоила этому компоненту Delphi ) на ПУСК.

    Аналогичным образом перенесите на форму с той же страницы Standard палитры компонентов метку TLabel (она на странице четвертая слева). В этой метке в процессе выполнения приложения будет появляться текс при нажатии пользователем кнопки. Delphi присвоит ей имя TLabel 1. Аналогично измените свойства Caption и Font для объекта TLabel 1.

Оператор, который вы написали означает следующее: свойству Caption компонента TLabel 1вы присвоили (:= - операция присваивания) строку текста «Это мое первое приложение»

‹ ›

Название документа ПР №2.doc

Тема: Практическая работа №2 «Компоненты и функции. Умножение двух чисел»

Предмет: Информатика и ИКТ

Класс: 10

Литература: Фиошин М.Е., Ресин А.А., Юнусов С.М. - «Информатика и ИКТ. 10-11 классы. Профильный уровень».

Ключевые слова: информатика, урок, программа, объектно-ориентированное программирование, приложение.

Задача : Создайте приложение, которое при нажатии кнопки перемножало бы два вещественных числа, введенных пользователем, и показывало бы результат умножения.

Знакомство с компонентами TEdit , TPanel и функциями FloatToStr и StrToFloat .

Ход работы:

Задайте имя форме «Умножение чисел», для этого в Object Inspector измените параметр Caption

  1. Перенесите на пустую форму компоненты TButton 1, TLabel 1, TLabel 2, TLabel 3, TEdit 1, TEdit 2, TPanel 1 со страницы Standard палитры компонентов.

Компонент является контейнером для группирования органов управления, но может использоваться и для отображения текста с возможностями объемного оформления. Основное свойство Caption

Отображение, ввод и редактирование однострочных текстов. Имеется возможность оформления объемного бордюра. Основное свойство Text .

    Измените надписи в метках компонентов TLabel 1, TLabel 2, TLabel 3 на «Число1», «Число2», «Результат». Для этого перейдите в Object Inspector и изменяйте их свойство Caption (надпись), в свойстве Font измените шрифт и размер символов.

Замените свойство Caption (надпись) вашей кнопки Button 1на «Расчет»

В свойстве Font измените шрифт и размер символов.

Очистите свойство Caption (надпись) у панели TPanel 1

Попробуйте поварьировать такими свойствами панели, как BevelInner и BevelOuter , которые определяют вид (утопленный - bvLowered или выпуклый - bvRaised ). В итоге форма примет вид:

    Выделите кнопку TButton 1 на форме, перейдите в Object Inspector , откройте в нем страницу событий (Events ), найдите событие кнопки OnClick (но первое сверху) и сделайте двойной щелчок в окне справа от имени этого события. Это стандартный способ задания обработчиков любых событий. Но перейти в обработчик событий OnClick кнопки можно и иначе: достаточно сделать двойной щелчок на компоненте TButton 1 на форме. В обоих случаях вы окажетесь в окне Редактора Кода и увидите там текс

Заголовок этой процедуры складывается из имени класса вашей формы TForm 1, имени компонента TButton 1 и имени события без префикса OnClick . Напишите в обработчике оператор задания:

Оператор, который вы написали означает следующее: свойству Caption компонента TPanel 1 вы присвоили (:= - операция присваивания) значение выражения, указанного в правой части оператора. Знак «+» означает конкатенацию – сцепление двух строк символов. Текст храниться в свойстве Text компонентов TLabel 1 иTLabel 2.

Функция FloatToStr преобразует заданный ей параметр типа действительного числа в строку символов.

Функция StrToFloat преобразует символьное изображение числа в его значение типа действительного числа.

Ваше приложение готово, можете его выполнить. Для этого выполните команду Ran или нажмите горячую клавишу F 9, или воспользуйтесь быстрой кнопкой.

‹ ›

Название документа ПР №3.doc

Тема: Практическая работа №3 «Решение задач»

Предмет: Информатика и ИКТ

Класс: 10

Литература: Фиошин М.Е., Ресин А.А., Юнусов С.М. - «Информатика и ИКТ. 10-11 классы. Профильный уровень».

Ключевые слова: информатика, урок, программа, объектно-ориентированное программирование, приложение.

Задача №1

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

Знакомство с функциями IntToStr и StrToInt .

«Очистить»

var A , B , Res : integer ; «объявляются переменные A ,B ,Res целого типа»

A := StrToInt (Edit 1. Text ); «целой переменной A присваивается значение взятое из компонента Edit 1. Text StrToInt »

B := StrToInt (Edit 2. Text ); «целой переменной В присваивается значение взятое из компонента Edi 2. Text в виде текста и преобразованное в число с помощью функции StrToInt »

Res := A + B ; «переменной Res присваивается значение суммы целых переменных А и В»

Edit 3. Text := IntToStr (Res ); «В компонент Edit 3.Text Res IntToStr »

Edit1.Text:="";

Edit2.Text:="";

Edit3.Text:="";

«Компонентам Edit 1.Text , Edit 2.Text , Edit 3.Text присваивается значение пустого текста»

StrToInt – преобразует текс в целое число (integer )

IntToStr – преобразует целое число(integer ) в текс

Ваше приложение готово, можете его выполнить. Для этого выполните команду Ran или нажмите горячую клавишу F 9, или воспользуйтесь быстрой кнопкой.

Задача №2

Создайте приложение, которое при нажатии кнопки вычисляло площадь круга.

Задача №3

Создайте приложение, которое при нажатии кнопки меняет местами значение двух переменных (метод пустого стакана).

2. Напишите обработчик событий для кнопок «Рассчитать» и «Очистить».

Var A , B , C : integer ; «объявляются переменные A ,B ,С целого типа»

A := StrToInt (Edit 1. Text ); «целой переменной A присваивается значение взятое из компонента Edit 1. Text в виде текста и преобразованное в число с помощью функции StrToInt »

B := StrToInt (Edit 2. Text ); «целой переменной В присваивается значение взятое из компонента Edit 2. Text в виде текста и преобразованное в число с помощью функции StrToInt »

C := A ; A := B ; B := C ; «меняем местами значения переменных»

Edit 1. Text := IntToStr (A ); «В компонент Edit 1.Text кладется значение целой переменной А преобразованное в текс с помощью функции IntToStr »

Edit 2. Text := IntToStr (B ); «В компонент Edit 2.Text кладется значение целой переменной В преобразованное в текс с помощью функции IntToStr »

Задача №4

Создайте приложение, которое при нажатии кнопки возводит Х в степень У.

1. Создайте форму и включите в неё нужные компоненты.

2. Напишите обработчик событий для кнопок «Возвести» и «Очистить».

Для «Очистить» аналогично задаче №1 и №2.

Var X , Y , R : integer ; «объявляются переменные X ,Y ,R вещественного типа»

X := StrToFloat (Edit 1. Text ); « переменной X присваивается значение взятое из компонента Edit 1. Text в виде текста и преобразованное в число с помощью функции StrToFloat »

Y := StrToFloat (Edit 2. Text ); « переменной В присваивается значение взятое из компонента Edit 2. Text в виде текста и преобразованное в число с помощью функции StrToFloat »

R := Exp (Y * Ln (X )); «В языке Pascal нет стандартной операции или функции для вычисления . Для решения такой задачи используют встроенную функцию Эта формула применяется для нецелых показателей степени У,а для целых намного эффективней умножать »

Edit 3. Text := FloatToStr (R ); «В компонент Edit 3.Text кладется значение переменной R преобразованное в текс с помощью функции FloatToStr »

    Ваше приложение готово, запустите и проверьте его

‹ ›

Название документа ПР №4.doc

Тема: Практическая работа №4 «Использование функций при решении задач»

Предмет: Информатика и ИКТ

Класс: 10

Литература: Фиошин М.Е., Ресин А.А., Юнусов С.М. - «Информатика и ИКТ. 10-11 классы. Профильный уровень».

Ключевые слова: информатика, урок, программа, объектно-ориентированное программирование, функции, приложение.

Функции

Модуль

Abs (X)

Возведение в квадрат

Sqr (X)

Вычисление квадратного корня

Sqrt (X)

Степенные

Exp (X)

Ln X

Ln (X)

Тригонометрические

Sin x

Sin (x)

Cos x

Cos (x)

Arctg x

Arctg (x)

Округление

По математическим правилам до целого

Round (X)

Отсекает дробную часть

Trunc (X)

Нахождение целой части от деления двух чисел (дробная часть просто отбрасывается)

X Div Y

Остаток от деления двух целых чисел (отбрасывается целая часть)

X Mod Y

Задача №1

Поменять местами значения в двух переменных, не пользуясь третьей переменной. Использовать для обмена какие либо компоненты также нельзя.

procedure TForm4.Button2Click(Sender: TObject);

var Y,X:integer;

begin

X:=StrToInt(Edit1.Text);

Y:=StrToInt(Edit2.Text);

X:=Y+X;

Y:=X-Y;

X:=X-Y;

Edit1.Text:=IntToStr(X);

Edit2.Text:=IntToStr(Y);

end;

ТObject);

begin

Edit1.Text:="";

Edit2.Text:="";

end;

Задача №2

Даны два числа, найти среднее арифметическое данных чисел и среднее геометрическое их модулей.

var A,B,C: extended;

begin

C:= (A+B)/2;

Edit3.Text:=FloatToStr (C);

end;

var A,B,C: extended;

begin

A:= StrToFloat (Edit1.Text);

B:= StrToFloat (Edit2.Text);

C:= Sqrt(Abs(A)*Abs(B));

Edit4.Text:=FloatToStr (C);

end;

procedure TForm1.Button2Click(Sender: ТObject);

begin

Edit1.Text:="";

Edit2.Text:="";

end;

end.

Задача №3

Дан один корень квадратного уравнения и коэффициент С. Известно, что коэффициент А равен 1. Найти второй корень и коэффициент В.

procedure TForm4.Button1Click(Sender: TObject);

Var X1,X2,B,C:extended;

begin

X1:=StrToFloat(Edit1.Text);

C:= StrToFloat(Edit2.Text);

X2:= (C/X1);

Edit3.Text:=FloatToStr(X2);

B:= -(X1+X2);

Edit4.Text:=FloatToStr(B);

end;

procedure TForm1.Button2Click(Sender: ТObject);

begin

Edit1.Text:="";

Edit2.Text:="";

end;

Задача №4

Дано количество секунд с начала суток. Вычислить текущее время в виде количества часов, минут и секунд.

procedure TForm1.Button2Click(Sender: ТObject);

begin

Edit1.Text:="";

Edit2.Text:="";

Edit3.Text:="";

Edit4.Text:="";

end;

begin

close;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Edit2.Text:=IntToStr(StrToInt (Edit1.Text) div 3600);

Edit3.Text:= IntToStr((StrToInt(Edit1.Text)-StrToInt(Edit2.Text) *3600) div 60);

Edit4.Text:= IntToStr(StrToInt(Edit1.Text)- StrToInt(Edit2.Text)*3600-StrToInt(Edit3.Text)*60);

end;

Задача №5

Дана длина окружности. Найти площадь данного круга.

procedure TForm1.Button1Click(Sender: TObject);

var L,R,S:extended;

begin

L:= StrToFloat(Edit1.Text);

R:=L/(2*Pi);

Edit 2.Text:=FloatToStr(R);

S:= Pi*(R*R);

Edit 3.Text:=FloatToStr(S);

end;

Задача №6

Дано целое число. Определить в нем количество сотен (не включающее количество тысяч)

var A,B:integer;

begin

A:=StrToInt(Edit1.Text);

B:=(A-(A div 1000)*1000)div 100;

Edit2.Text:=IntToStr(B);

end;

procedure TForm1.Button2Click(Sender: ТObject);

begin

Edit1.Text:="";

Edit2.Text:="";

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

close;

end;

Задача №7

Дано двузначное число. Определить в нем сумму цифр.

procedure TForm1.Button1Click(Sender: TObject);

var A,B:integer;

begin

A:=StrToInt(Edit1.Text);

B:=(A-(A div 10)*10)+(A div 10);

(Из А вычитаем кол-во 10*на 10 и + кол-во 10)

Edit2.Text:=IntToStr(B);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Edit1.Text:="";

Edit2.Text:="";

end;

Задача №8

На счет в банке на 5 лет была положена определенная денежная сумма под определенный годовой процент. Проценты начисляются каждый год в зависимости от суммы на счете. Вводятся начальная сумма и годовой процент (от 1 до 100). Какая сумма будет на счете через 5 лет. / S =A *(1+0,01*B )^5/

procedure TForm2.Button1Click(Sender: TObject);

var A,B,S:extended;

begin

A:= StrToFloat(Edit1.Text);

B:= StrToFloat(Edit2.Text);

S:= A*Exp(5*Ln(1+0.01*B));

Edit3.Text:=FloatToStr(S);

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

Edit1.Text:="";

Edit2.Text:="";

Edit3.Text:="";

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

close;

end;

Задача №9

Дана длина ребра куба. Вычислить площадь его боковой поверхности.

procedure TForm1.Button1Click(Sender: TObject);

var A,S:extended;

begin

A:= StrToFloat(Edit1.Text);

S:= 4*A*A;

Edit2.Text:=FloatToStr(S);

end;

Задача №10

Дано вещественное число. Найти его вторую цифру в дробной части.

procedure TForm1.Button1Click(Sender: TObject);

var N: integer; S:extended;

begin

N:= StrToFloat(Edit1.Text);

S:=(N mod 0,1) div 10;

Edit2.Text:=IntToStr(N);

end;

‹ ›

Чтобы скачать материал, введите свой E-mail, укажите, кто Вы, и нажмите кнопку