Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабник по СПО

.pdf
Скачиваний:
9
Добавлен:
05.06.2015
Размер:
1.59 Mб
Скачать

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

Наборы свойств объектов разных типов различаются, но каждый объект имеет свойство Name - хранящее уникальное имя объекта, через которое происходит обращение к данному объекту.

Компонент TApplicationEvents (события объекта Application) находится на вкладке Additional. Компонент предназначен для создания глобального объекта, имеющего события, позволяющие изменять свойства объекта Application.

Значения свойств объектов, устанавливаемых на форму, можно задавать в процессе проектирования в окне менеджера объектов (Object Inspector) или программно во время работы приложения. Менеджер объектов содержит две страницы: страницу свойств - Properties (рис.1.3,а) и страницу событий - Events (рис.1.3,б).

Страница событий позволяет создавать процедуры - обработчики событий, определяющие действия программы. Фактически любая программа состоит из набора процедур и функций, выполняющих действия программы.

а

б

Рис.1.3. Страницы менеджера объектов:а - страница свойств; б - страница событий

11

PDF created with pdfFactory Pro trial version www.pdffactory.com

Компонент TLabel (метка) находится на вкладке Standard, используется как область для вывода текста. Текст хранится в свойстве Caption и может содержать только символы или строки.

Свойство AutoSize = True определяет минимизацию размера метки под текст надписи, Alignment - центровку этого текста по горизонтали, Layout - центровку текста по вертикали, Transparent - прозрачность при наложении на другие элементы. Для

расположения текста в несколько строк необходимо задать значение свойства WordWrap = True и свойства AutoSize = False и выбрать подходящие размеры метки.

Использование команд перехода на новую строку: \n, на языке C++ , или #10, на языке Delphi, или команды возврата каретки #13 позволяет вывести текст в несколько строк, независимо от значения свойства WordWrap. Пример операторов для вывода трёх строк на метку приведён ниже:

Label1->Caption = "Вывод \n текста \n в три строки"; Label1.Caption := 'Вывод'#10'текста'#13'в три строки';

Компонент TEdit (окно ввода) находится на вкладке Standard и предназначен для ввода или вывода одной строки текста. Заголовка у него нет, но есть свойство Text, значение которого можно считывать и изменять (при необходимости с ограничением длины назначением свойства MaxLength). При программировании ввода конфиденциальной информации можно указать тип отображаемых символов (обычно "*"), при этом нужно переопределить свойство PasswordChar, задав его отличным от #0.

Компонент TButton (кнопка) находится на вкладке Standard. Обычно он используется для подачи команды.

Свойство Cancel = True ассоциирует кнопку с клавишей Esc, но только если фокус не принадлежит объекту типа TMemo. Ассоциация кнопки с клавишей Esc действует только на одну кнопку.

Свойство Default = True ассоциирует вводимый объект с клавишей Enter, если фокус принадлежит объекту типа TEdit.

Свойство Font.Color, предназначенное для задания цвета надписи, у стандартной кнопки не действует. Цвет надписи кнопки определяется палитрой цветов, заданных при настройке ОС Windows.

Амперсант, помещенный в тексте надписи, указывает на быструю Alt-клавишу запуска, например, Caption = &Выход вызывает срабатывание кнопки при нажатии комбинации клавиш LAlt+В.

12

PDF created with pdfFactory Pro trial version www.pdffactory.com

Использование функций Windows API позволяет установить многострочный стиль текста стандартной кнопки. Для изменения стиля вывода текста следует получить текущий стиль, а затем добавить к нему новый стиль. Текст функции на языке С++, изменяющей однострочный стиль вывода текста кнопки на многострочный, приведён в распечатке 1.1.

Распечатка 1.1

void __fastcall TfmWork1::Button6Click (TObject *Sender)

{long NewStyle = GetWindowLong (Button6->Handle,GWL_STYLE); NewStyle |= BS_MULTILINE;

SetWindowLong(Button6->Handle,GWL_STYLE,NewStyle); Button6->Caption=" Вывод трёх строк на кнопку ";

}

Текст процедуры на языке Delphi, изменяющей стиль вывода текста кнопки на многострочный стиль, приведён в распечатке 1.2.

Распечатка 1.2

Procedure TForm1.Button6Click(Sender: TObject); Var NewStyle :Longint;

Begin

NewStyle:=GetWindowLong(Button6.Handle,GWL_STYLE); NewStyle := NewStyle Or BS_MULTILINE; SetWindowLong(Button6.Handle,GWL_STYLE,NewStyle); Button6.Caption:=' Вывод трёх строк на кнопку '

End;

Схема программы

Целью лабораторной работы № 1 является исследование влияния способа описания процедуры на её свойства. Для выявления различия в свойствах процедур, включённых и не включённых в описание класса, создадим три аналогичные процедуры, отличающиеся способом описания. Процедуру Pr1 оформим как члена класса формы, процедуру Pr2 - с объявлением вне класса формы, процедуру Pr3 оформим как не члена класса формы без прототипа.

13

PDF created with pdfFactory Pro trial version www.pdffactory.com

После запуска программа должна последовательно проверять наличие введённых команд и исполнять их. Схема программы приведена на рис.1.4.

4

Pr3

Да

8

Pr1

Да

Да

13

Ввод нажатия Кн1

Да

1

Начало

2 ?

Выход

Нет

3 ?

Кн3

Нет

5 ?

Ф2Кн2

Нет

7 ?

Кн1

Нет

9 ?

Ф2Кн1

Нет

10 ?

Кн2

Нет

12Изм?Ed1

Нет

14 ?

Кн4

Нет

Да

16

Конец

6

Pr2

Да

11

Вывод текста

на форму 1

Да

15

Вывод текста на метку Ф2

Да

Рис.1.4. Схема программы для исследования взаимодействия

форм и процедур

Для подачи команд и вызова процедур используем кнопки. Кнопка Кн1 должна вызывать процедуру Pr1, кнопка Кн2 - выводить текст на форму и вызывать процедуру Pr2, кнопка Кн3 - вызывать процедуру Pr3. Кнопка Кн4, расположенная на главной форме, должна выводить текст на метку, расположенную на второй форме. Кнопка Ф2Кн1, помещённая на второй форме, должна вызывать процедуру Pr1 из главной формы, кнопка Ф2Кн2 должна вызывать процедуру Pr2.

При возникновении изменений в редакторе Edit1 должен вызываться обработчик события нажатия кнопки Кн1, и через него процедура Pr1. Обработчик изменений текста редактора Edit1 должен вызывать процедуру обработчика нажатия кнопки Кн1, а обработчик

14

PDF created with pdfFactory Pro trial version www.pdffactory.com

нажатия кнопки должен вызывать процедуру Pr1. Это сделано для отработки оператора программного нажатия кнопки.

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

Процедуры Pr1, Pr2 и Pr3 оформлены как предопределённые процессы для упрощения общей схемы программы. Схема процедуры Pr1 показана на рис.1.5.

1

Начало

 

2

4

 

 

 

Чтение текста

Вывод текста

 

 

редактора

 

на метку

 

 

 

 

 

 

 

 

5

 

 

3

 

 

 

 

Объединение

Конец

 

 

 

 

 

с текстом константы

 

 

 

 

 

 

 

 

 

Рис.1.5. Схема процедуры объединения и вывода текстов

Процедура Pr1 должна читать текст из редактора Edit1, объединять его с текстовой константой Ch1 и выводить объединённый текст на метку Label1. Процедуры Pr1, Pr2 и Pr3 должны выполнять аналогичные действия: чтение текста из редактора, объединение текста редактора с текстом строковой константы и вывод объединённого текста на метку, поэтому схемы этих процедур получаются одинаковыми. Различными в процедурах Pr1, Pr2 и Pr3 являются только имена редакторов, строковых констант и меток.

Процедура Pr2 должна считать текст из редактора Edit2, объединить его с текстовой константой Ch2 и вывести объединённый текст на метку Label2.

Процедура Pr3 должна считать текст из редактора Edit3, объединить его с текстовой константой Ch2, добавить в общий текст строку "без прототипа" и вывести объединённый текст на метку Label2.

15

PDF created with pdfFactory Pro trial version www.pdffactory.com

Подготовка рабочей области на диске

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

При работе в классе кафедры САУиК рекомендуется рабочие папки создавать на диске С: в папке \Мои документы, например, С:\Мои документы\SPO\Work_1. Для каждого проекта должна быть создана отдельная папка, в которой должны сохраняться файлы, относящиеся к данному проекту.

Запуск и настройка среды программирования

Для подключения к серверу, содержащему систему программирования, необходимо щелкнуть по ярлыку 4100 или, если его нет, набрать команду

Skylab.sipc.miet.ru.

В списке программ находим CodeGear RAD Studio, в появившемся подменю выбираем требуемую среду программирования (рис.1.6).

Рис.1.6. Меню выбора среды программирования

Выбираем соответствующую среду, С++Builder 2007 или Delphi 2007, и запускаем систему программирования. На экране должно появиться основное окно интегрированной среды разработки, в центре которого находится страница приветствия Welcome Page (рис.1.7).

16

PDF created with pdfFactory Pro trial version www.pdffactory.com

Рис.1.7. Окно выбора проекта

Выбираем команду New Project, и на экране должно появиться окно New Items, в этом

окне выбираем соответствующий проект и в списке возможных типов проектов выбираем

VCL Forms Application (рис.1.8).

Рис.1.8. Окно выбора типа проекта

После нажатия кнопки OK должна появиться форма главного окна (рис.1.9).

17

PDF created with pdfFactory Pro trial version www.pdffactory.com

Рис.1.9. Вид главного окна проекта в интегрированной среде разработки

CodeGear RAD Studio

В первую очередь надо сохранить новый проект. Для этого выбираем пункт главного меню FilegSave Proiect As..., открываем подготовленную заранее папку и сохраняем сначала файл модуля, изменив его имя, затем - файл проекта, изменив его имя.

Рекомендация. Не используйте предлагаемые по умолчанию имена.

После сохранения проекта проверяем работу программы, выбираем пункт меню RungRun или нажимаем клавишу F9. Если компиляция прошла нормально, и появилось окно главной формы, то можно приступить к настройке системы.

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

Для выбора способов выделения лексических элементов текста можно открыть вкладку Colors командой ToolsgOptions...gColor и выполнить настройку. Настройку необходимо выполнить так, чтобы обеспечить выделение основных элементов текста: служебных слов, комментариев, имен, чисел, строк и символов.

18

PDF created with pdfFactory Pro trial version www.pdffactory.com

Для автоматического сохранения текстов программы и последних изменений нужно командами ToolsgOptions...gEnvironment OptionsgPreferences открыть окно

Options. На панели Autosave Options установить значок ü в переключателях Editor files и Project desktop.

Для обеспечения возможности применения разработанных программ на компьютерах, не имеющих динамических библиотек и библиотек времени выполнения нужной версии, библиотеки можно ввести в состав исполняемого файла. Для этого следует командой ProjectgOptionsgPacckages открыть диалоговое окно Project Options. На панели Runtime Packages в переключателе Build with runtime packages сбросить значок ü. В среде программирования С++ Builder 2007, кроме того, необходимо командами Project gOptions открыть диалоговое окно Project Options for Project1, выбрать файл C++Linker и присвоить значение false свойству Dynamic RTL.

Включение динамических библиотек и библиотек времени выполнения в исполняемый файл существенно увеличивает размер исполняемого файла, почти в 10 раз.

На этапе отладки и при выполнении учебных программ нет смысла использовать статические библиотеки и поэтому можно оставить включённым переключатель Build with runtime packages.

Всистеме CodeGear RAD Studio 2007 по умолчанию форма встроена в поверхность проектирования. Внизу поверхности проектирования видны четыре закладки с именами файла реализации модуля и заголовочного файла для языка С++, которые переключают поверхность проектирования в режим редактирования кода. Закладка Design переключает поверхность проектирования в режим визуального проектирования формы. Это переключение можно выполнить нажатием клавиши F12.

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

Изменение вида основного окна интегрированной среды разработки выполняется командой ToolsgOptionsgVCL Designer, после которой должно открыться окно Options (рис.1.10). На панели Options в переключателе Embedded designer необходимо убрать значок ü и перезапустить систему программирования.

19

PDF created with pdfFactory Pro trial version www.pdffactory.com

Рис.1.10. Диалоговое окно задания параметров основного окна интегрированной среды CodeGear RAD Studio 2007

При повторном запуске системы программирования открываем сохранённый проект и приступаем к написанию текста программы. При такой настройке форма и редактор кода видны одновременно (рис.1.11).

Рис.1.11. Вид главного окна проекта с одновременным отображением кода и формы

20

PDF created with pdfFactory Pro trial version www.pdffactory.com

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]