Тестовая оболочка в Delphi

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

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 04.12.2011
Размер файла 46,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Западно - Казахстанский инженерно-технологический колледж

Отчет по учебной практике

Уральск 2011г.

Содержание

Введение

Палитра компонентов Delphi

Файл текста

Вывод иллюстрации

Загрузка файла

Практическая часть

Листинг программы

Заключение

Список литературы

Введение

Delphi, основой которого является язык Pascal, отлично подходит для того, чтобы начать учиться программировать. Сам Pascal постепенно уходит в прошлое и на него всё меньше обращают внимание. Это и понятно - на нём пишутся приложения для MS-DOS. Если быть более точным, то языком Delphi является Pascal не в том виде, в каком его используют для написания приложений MS-DOS, а в другой модификации - Object Pascal. В этом языке программирование как бы "привязывается" к определённым объектам - как визуальным, так и не визуальным, просто находящимся в памяти. Программирование простых приложений с интерфейсом командной строки (т.е. когда на экран последовательно выводятся строки текста и при этом пользователь вводит какие-либо данные) советуют также начинать с Pascal. Также многие начинают с QBasic, но этот язык один из самых "древних" и возможностей у него немного. Однако для понимания общих принципов программирования он также подойдёт. Дело в том, что в этих языках нет каких-либо хитроумных конструкций и наборов знаков.

Delphi - это нечто иное, нежели Pascal, это совершенно другой качественный этап среды программирования. С помощью Delphi создаются приложения для операционной системы Windows, но помимо этого с помощью дополнительных средств можно написать, например, программы и для Linux. Среда Delphi легко расширяется установкой дополнительных модулей. Пользовательский интерфейс также хорошо настраиваемый - каждый организует рабочее пространство так, как ему будет удобно.

Краткие сведения о Delphi

Delphi -- результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Delphi оказал огромное влияние на создание концепции языка C# для платформы .NET. Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp.

Версия 1 была предназначена для разработки под 16-ти разрядную платформу Win16;

Версии со второй компилируют программы под 32-х разрядную платформу Win32;

Вместе с 6-й версией Delphi вышла совместимая с ним по языку и библиотекам среда Kylix, предназначенная для компиляции программ под операционную систему Linux;

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

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

Delphi for .NET -- среда разработки Delphi, а так же язык Delphi (Object Pascal), ориентированные на разработку приложений для .NET.

Studio 2007, мало чем отличается по возможностям от BDS 2006, но зато она очень хорошо оптимизирована и пригодна для использования на маломощных машинах, в отличие от своего предшественника. Delphi 2009 - это новый большой шаг в развитии Delphi. В этой версии появилась полноценная поддержка Юникода (этого все ждали и оно свершилось). Конечно, наравне с новыми просторами для деятельности это вскрыло и новые проблемы: некоторые старые программы, компоненты и модули перестали корректно работать. Однако в большинстве случаев все конфликты решаются правкой нескольких строк.

Палитра компонентов Delphi

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

Standard -- все эти компоненты являются аналогами компонентов Windows.

Additional -- дополнительные компоненты.

Win32 -- компоненты, которые есть только в семействе ОС Win32. В это семейство входят Windows 9x, Windows ME, Windows 2000, Windows NT, Windows XP. Наверно, легче было сказать, что не входит, потому что это только Windows 3.1.

System -- системные компоненты, с помощью которых облегчается доступ к системе.

Data Access -- компоненты доступа к базам данных.

Data Controls -- компоненты для работы с базами данных.

dbExpress -- компоненты доступа к базам данных, которые пришли на смену BDE.

BDE -- старые компоненты доступа к базам данных, сохранённые для совместимости версий.

ADO -- это тоже компоненты для доступа к базам данных, только по технологии Active

Data Object (ADO). Данные компоненты удобны при работе с базами данных от Microsoft.

InterBase -- компоненты доступа к базе данных InterBase, которая является фирменным продуктом компании Borland.

WebServices, InternetExpress, Internet, WebSnap -- вкладки, на которых расположены компоненты для доступа к сети Internet. Также компоненты для работы с Интернетом находятся на семействе вкладок Indy.

Decision Cube и Rave -- компоненты для создания отчетности.

Dialogs -- компоненты, облегчающие доступ к стандартным диалогам.

Win3.ll -- компоненты доступа к компонентам, использовавшимся в операционной системе Windows3.11. Странно, что эта вкладка сохраняется до сих пор, видимо, Borland считает, что Windows3.11 до сих пор используется.

Samples -- различные примеры компонентов. Некоторые из этих компонентов доступны в исходных кодах и поставляются вместе с Delphi.ьин, М. Тагин

Русская справка (HELP) по Delphi 5 и Object Pascal (32 стр. с CD-ROM)

Бином, ISBN 5-7989-0168-8.

Объектно-ориентированное программирование

Большим шагом вперёд в развитии технологий программирования было появление объектно-ориентированного программирования. Здесь программный код перестал быть "плоским" и программист оперирует не просто процедурами и функциями, а целыми объектами.

Объект -- совокупность свойств, методов, событий. Что означает "совокупность"? Это значит, что объект как бы состоит из методов, свойств и событий, и они обеспечивают его полноценную работу. Представим себе кнопку. Она обладает:

свойствами (цвет, текст на кнопке, шрифт текста и т. д.);

событиями (события пользовательского ввода, например, нажатие на кнопку);

методами (обеспечивающими работу кнопки, например, метод прорисовки текста, прорисовки фокуса и т. д.).

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

Свойства -- это переменные, которые влияют на состояние объекта. Например, ширина и высота объекта.

Методы -- это те же процедуры и функции, т. е. это то, что объект умеет делать. Например, объект может иметь процедуру для вывода какого-то текста на экран. Эта процедура и есть метод, который принадлежит объекту.

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

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

Рассмотрим пример. Пусть пользователь нажал на кнопку. В этом случае она, как объект, генерирует соответствующее событие. В результате этого может быть вызвана процедура-обработчик, которую вы назначили кнопке при возникновении данного события. В этом случае не требуется никакая дополнительная информация, поэтому объект не будет пересылать вам никаких параметров, кроме указателя на самого себя. Однако, если нужно обработать событие, связанное с перемещением курсора мыши, дело будет обстоять несколько иначе. В этом случае объект будет генерировать событие и автоматически передавать вам новые координаты X и Y курсора, поэтому процедура должна быть объявлена с соответствующими параметрами, чтобы можно было принять их от объекта.

Теперь рассмотрим работу свойств, методов и событий как единого целого. И снова для примера возьмем объект -- кнопку. Такой объект должен обладать следующим минимальным набором.

1. Свойства:

левая позиция Left;

верхняя позиция Top;

ширина Width;

высота Height;

заголовок Caption;

2. Методы:

создать кнопку;

нарисовать кнопку;

уничтожить кнопку.

3. События:

кнопка нажата;

кнопка отпущена;

заголовок кнопки изменен.

Объект работает как единое целое. Например, вы изменили заголовок кнопки. Объект генерирует событие "заголовок кнопки изменен". По этому событию вызывается метод "нарисовать кнопку". Этот метод рисует кнопку в позиции, указанной в свойствах объекта, и выводит на кнопке новый текст, указанный в свойстве "заголовок".

У каждого объекта обязательно присутствуют два метода: "создать объект" и "уничтожить объект". Во время создания объекта происходит выделение памяти для хранения необходимых свойств, и заполняются значения по умолчанию. Во время уничтожения объекта происходит освобождение выделенной памяти. Метод для создания объекта называется конструктором (constructor). Метод для уничтожения объекта называется деструктором (destructor). Сам процесс создания объекта называется инициализацией.

Теперь рассмотрим использования нашей кнопки. Он выглядит следующим образом:

Создание кнопки с помощью вызова конструктора;

Изменение необходимых свойств;

Все. Наша кнопка готова к работе.

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

Объявить переменную типа "кнопка".

В эту переменную проинициализировать объект.

Изменить нужные свойства.

Можно использовать объект.

Вот тут нужно собрать все, что вы поняли об объектах, в одно целое. Итак, мы можем объявлять переменные типа "объект". Давайте объявим переменную-объект типа Кнопка. Теперь можно создать кнопку, для чего есть конструктор (метод для создания объекта), который выделяет свободную память под этот объект. Процесс инициализации объекта-кнопки выглядит так: переменной Объект нужно присвоить результат работы конструктора объекта Кнопка. Конструктор выделит необходимую объекту память и присвоит свойствам значения по умолчанию. Результат этого действия будет присвоен переменной Объект. Эта переменная будет указывать на область памяти в которой находится созданная кнопка, и ее свойства. После всех этих действий мы можем получить доступ к созданному объекту через переменную Объект.

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

Начало программы

Переменные:

Объект1: Кнопка;

Начало кода

Объект1:= Кнопка. Создать объект;

Объект1.Заголовок:='Привет';

Объект1.Уничтожить объект.

Конец кода;

Доступ к свойствам и методам объектов осуществляется при помощи записи

Имя Объекта. Свойство

или

Имя Объекта. Метод

т.е. в записи имя объекта и его свойства или методы объекта разделяются точкой.

Создание объекта перед использованием -- обязательно. Поэтому, если вы попробуете использовать код, приведенный ниже, то у вас произойдет ошибка.

Неправильное использование объекта

Начало программы

Переменные:

Объект1: Кнопка;

Начало кода

Объект1.Заголовок:='Привет';

Конец кода;

Здесь мы пытаемся изменить заголовок без создания и уничтожения объекта, а это ошибка! В данном случае переменная Объект1 ещё ничего не хранит и ни на что не указывает. Её необходимо сначала проинициализировать и создать для нее объект-кнопку или присвоить адрес расположения в памяти уже существующей кнопки.

Без инициализации можно использовать только простые переменные, такие как число или строка. Тут Delphi выделяет под них память автоматически, потому что размер этих переменных фиксированный и Delphi уже на этапе компиляции знает, сколько памяти нужно отвести под переменную. Сложные переменные типа объектов обязательно должны инициализироваться. Это связано еще и с размещением данных. Простые переменные хранятся в стеке (сегмент стека), а сложные переменные типа объектов хранятся в памяти компьютера. При старте программы сегмент стека инициализируется автоматически. Поэтому переменные могут спокойно размещаться в уже подготовленной памяти сегмента стека. Когда вы создаете объект, он создается в нераспределенной памяти компьютера. Так как память еще не распределена, ее нужно сначала подготовить (выделить нужный объем под создаваемый объект). После того как объект не нужен, эту память необходимо освободить, вызвав деструктор объекта. Простые переменные освобождать не надо, потому что стек очищается автоматически.

Объект -- очень удобная вещь. Он работает как шаблон, на основе которого создаются переменные типа объектов. Например:

Объект в виде шаблона

Начало программы

Переменные:

Объект1 -- Кнопка;

Объект2 -- Кнопка;

Начало кода

Объект1:= Кнопка. Создать объект;

Объект2:= Кнопка. Создать объект;

Объект1.Заголовок:='Привет';

Объект2.Заголовок:='Пока';

Объект1.Уничтожить объект;

Объект2.Уничтожить объект;

Конец кода;

Инициализацию объекта еще очень часто называют созданием экземпляра объекта. И это тоже правильно. Когда вы вызываете конструктор, в памяти создается новый экземпляр объекта. В данном примере можно сказать, что наши переменные объект1 и Объект2 указывают на собственные экземпляры объекта Кнопка, т. е. в памяти получается две независимые копии объекта (кнопки). Любую из них можно независимо менять и она не будет влиять на другую переменную.

Теперь более подробно о самом примере. В нем объявляются две переменных типа "кнопка". Потом производятся их инициализация и изменение заголовка на нужный. В результате мы получили из одного объекта две кнопки с разными заголовками. Обе кнопки работают автономно и не мешают друг другу, потому что им выделена разная память. Таким образом создаются новые объекты на основе шаблона и потом раздельно используются, изменяя разные свойства шаблона и используя его методы.

Файл теста

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

Файл теста состоит из трех разделов:

раздел заголовка;

раздел оценок;

раздел вопросов.

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

Вот пример заголовка файла теста:

Сейчас Вам будут предложены вопросы о программировании в Delphi

Вы должны из предложенных нескольких вариантов ответа выбрать правильный.

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

Отлично 100

Хорошо 85

Удовлетворительно 60

Плохо 50

За разделом оценок следует раздел вопросов теста.

Каждый вопрос начинается текстом вопроса, за которым может следовать имя файла иллюстрации, размещаемое на отдельной строке и начинающееся символом \. Имя файла иллюстрации является признаком конца текста вопроса. Если к вопросу нет иллюстрации, то вместо имени файла ставится точка.

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

Вот пример вопроса:

В какой вкладке находится кнопка Button?

\herm.bmp

Data Controls,0

Samples,0

Standart.1

В приведенном вопросе третий ответ помечен как правильныq (оценка за выбор не равна нулю).

Файл теста может быть подготовлен в текстовом редакторе Notepad или Microsoft Word. В случае использования Microsoft Word при сохранении текста следует указать, что надо сохранить только текст. Для этого в диалоговом окне Сохранить в списке Тип файла следует выбрать вариант Только текст (*.txt).

Форма приложения

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

Поле метки Label5 предназначено для вывода текста вопроса, начальной информации о тесте и результатов тестирования.

Поля Label 1, Label2, Label3 и Label 4 предназначены для вывода текста альтернативных ответов, а переключатели RadioButtoni, RadioButton2, RadioButton3 и RadioButton4 -- для выбора ответа.

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

Следует обратить внимание на недоступный (невидимый) во время работы переключатель RadioButton5. Перед выводом очередного вопроса он программно устанавливается в выбранное положение, что обеспечивает сброс (установку в невыбранное состояние) переключателей выбора ответа (RadioButton1i, RadioButton2, RadioButton3 И RadioButton4).

Вывод иллюстрации

Для вывода иллюстрации в форму добавлен компонент image, значок которого находится на вкладке Additional палитры компонентов.

Картинку, отображаемую в области image, можно задать во время создания формы или во время работы программы. Во время создания формы картинка задается установкой значения свойства Picture. Во время работы программы -- Применением Метода LoadFromFile.

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

Image1.Picture.LoadFromFile('isaak.bmp');

Очевидно, что размер области формы, которая может использоваться для вывода иллюстрации, зависит от длины (количества слов) вопроса, длины и количества альтернативных ответов. Чем длиннее вопрос и ответы, тем больше места в поле формы они занимают, и тем меньше места остается для иллюстрации.

При проектировании формы можно задать жесткие ограничения на размер областей, предназначенных для вопроса и альтернативных ответов, и жестко задать предельный размер иллюстрации. Если реальный размер иллюстрации превышает размер области, выделенной для ее вывода, то необходимо вычислить коэффициент масштабирования и установить максимально возможные, пропорциональные ширине и высоте иллюстрации, значения свойств width и Height области вывода иллюстрации.

Реальные размеры иллюстрации, загруженной в область image 1, можно получить из свойств Image1.Picture.Bitmap.Width И Image1.Picture.Bitmap.Height.

Загрузка файла теста

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

Для настройки программы тестирования, значок запуска которой находится на рабочем столе, на работу с файлом теста Peterb.txt необходимо щелкнуть правой кнопкой мыши на значке программы, из появившегося контекстного меню выбрать команду Свойства и в поле Объект, после имени файла программы (Testl.exe), ввести имя файла теста (Peterb.txt), заключив его в двойные кавычки. Текст, находящийся в поле Объект вкладки Ярлык диалогового окна Свойства, называется командной строкой. Программа может получить параметр, указанный в командной строке запуска программы, как значение функции ParamStr), где л -- номер параметра. Количество параметров командной строки находится в глобальной переменной ParamCount. Для приведенного выше примера командной строки запуска программы тестирования значение переменной ParamCount равно 1, а функции ParamStr (1) -- peterb.txt.

Ниже приведен фрагмент программы, обеспечивающий прием параметра из командной строки:

if ParamCount = 0 then begin

ShowMessage('Ошибка! Не задан файл вопросов теста.');

goto bye; // аварийное завершение программы

end;

FileName := ParamStr(1); // имя файла -- параметр командной строки

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

Текст программы

После создания формы в окно редактора кода, в секцию implementation следует поместить описание глобальных констант (раздел const) и переменных (раздел var). Затем можно приступить к созданию процедур обработки событий. Их в программе три: обработка события onActivate для стартовой формы, обработка события Onclick для командной кнопки Buttoni и процедура обработки события onclick -- одна, общая для переключателей выбора ответа.

Практическая часть программы

В практической части разрабатывалась тестовая оболочка по дисциплине «Основы алгоритмизации и программирования»

(рис. 1)

В данной программе использовались следующие кнопки (см. рис. 1) :

Label1, Label2, Label3, Label4, Label5

RadioButton1, RadioButton2, RadioButton3, RadioButton4, RadioButton5

Button1

Panel1

Image1

Листинг программы

unit tester_;

interface

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,

Forms, Dialogs, StdCtrls, ExtCtrls,

jpeg;

type

TForm1 = class(TForm)

Label5: TLabel;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

RadioButton4: TRadioButton;

Image1: TImage;

Button1: TButton;

Panel1: TPanel;

RadioButton5: TRadioButton;

procedure FormActivate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure RadioButtonClick(Sender: TObject);

procedure Info;

procedure VoprosToScr;

procedure ShowPicture;

procedure ResetForm;

procedure Itog;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

const

N_LEV=4;

N_ANS=4;

var

f:TextFile;

fn:string;

level:array[1..N_LEV] of integer;

mes:array[1..N_LEV] of string;

score:array[1..N_ANS] of integer;

summa:integer;

vopros:integer;

otv:integer;

procedure Tform1.Info;

var

s,buf:string;

begin

readln(f,s);

Form1.Caption := s;

buf:='';

repeat

readln(f,s);

if s[1] <> '.'

then buf := buf +s + #13;

until s[1] ='.';

Label5.caption:=buf;

end;

Procedure GetLevel;

var

i:integer;

buf:string;

begin

i:=1;

repeat

readln(f,buf);

if buf[1] <> '.' then begin

mes[i]:=buf;

readln(f,level[i]);

i:=i+1;

end;

until buf[1]='.';

end;

Procedure TForm1.ShowPicture;

var

w,h: integer;

begin

w:=ClientWidth-10;

h:=ClientHeight

- Panel1.Height -10

- Label5.Top

- Label5.Height - 10;

if Label1.Caption <> ''

then h:=h-Label1.Height-10;

if Label2.Caption <> ''

then h:=h-Label2.Height-10;

if Label3.Caption <> ''

then h:=h-Label3.Height-10;

if Label4.Caption <> ''

then h:=h-Label4.Height-10;

Image1.Top:=Form1.Label5.Top+Label5.Height+10;

if Image1.Picture.Bitmap.Height > h

then Image1.Height:=h

else Image1.Height:= Image1.Picture.Height;

if Image1.Picture.Bitmap.Width > w

then Image1.Width:=w

else Image1.Width:=Image1.Picture.Width;

Image1.Visible := True;

end;

Procedure TForm1.VoprosToScr;

var

i:integer;

s,buf:string;

ifn:string;

begin

vopros:=vopros+1;

caption:='Вопрос ' + IntToStr(vopros);

buf:='';

repeat

readln(f,s);

if (s[1] <> '.') and (s[1] <> '\')

then buf:=buf+s+' ';

until (s[1] ='.') or (s[1] ='\');

Label5.caption:=buf;

if s[1] <> '\'

then Image1.Tag:=0

else

begin

Image1.Tag:=1;

ifn:=copy(s,2,length(s));

try

Image1.Picture.LoadFromFile(ifn);

except

on E:EFOpenError do

Image1.Tag:=0;

end;

end;

i:=1;

repeat

buf:='';

repeat

readln(f,s);

if (s[1]<>'.') and (s[1] <> ',')

then buf:=buf+s+' ';

until (s[1]=',')or(s[1]='.');

score[i]:= StrToInt(s[2]);

case i of

1: Label1.caption:=buf;

2: Label2.caption:=buf;

3: Label3.caption:=buf;

4: Label4.caption:=buf;

end;

i:=i+1;

until s[1]='.';

if Image1.Tag =1

then ShowPicture;

if Form1.Label1.Caption <> ''

then begin

if Form1.Image1.Tag =1

then Label1.top:=Image1.Top+Image1.Height+10

else Label1.top:=Label5.Top+Label5.Height+10;

RadioButton1.top:=Label1.top;

Label1.visible:=TRUE;

RadioButton1.visible:=TRUE;

end;

if Form1.Label2.Caption <> ''

then begin

Label2.top:=Label1.top+ Label1.height+10;

RadioButton2.top:=Label2.top;

Label2.visible:=TRUE;

RadioButton2.visible:=TRUE;

end;

if Form1.Label3.Caption <> ''

then begin

Label3.top:=Label2.top+ Label2.height+10;

RadioButton3.top:=Label3.top;

Label3.visible:=TRUE;

RadioButton3.visible:=TRUE;

end;

if Form1.Label4.Caption <> ''

then begin

Label4.top:=Label3.top+ Label3.height+10;

RadioButton4.top:=Label4.top;

Label4.visible:=TRUE;

RadioButton4.visible:=TRUE;

end;

end;

Procedure TForm1.ResetForm;

begin

Label1.Visible:=FALSE;

Label1.caption:='';

Label1.width:=ClientWidth-Label1.left-5;

RadioButton1.Visible:=FALSE;

Label2.Visible:=FALSE;

Label2.caption:='';

Label2.width:=ClientWidth-Label2.left-5;

RadioButton2.Visible:=FALSE;

Label3.Visible:=FALSE;

Label3.caption:='';

Label3.width:=ClientWidth-Label3.left-5;

RadioButton3.Visible:=FALSE;

Label4.Visible:=FALSE;

Label4.caption:='';

Label4.width:=ClientWidth-Label4.left-5;

RadioButton4.Visible:=FALSE;

Label5.width:=ClientWidth-Label5.left-5;

Image1.Visible:=FALSE;

end;

procedure TForm1.Itog;

var

i:integer;

buf:string;

begin

buf:='';

buf:= Результаты тестирования+ #13

+'Всего баллов: '+ IntToStr(summa);

i:=1;

while (summa < level[i]) and (i<N_LEV) do

i:=i+1;

buf:=buf+ #13+mes[i];

Label5.Top:=20;

Label5.caption:=buf;

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

ResetForm;

if ParamCount = 0

then begin

Label5.caption:= 'Не задан файл вопросов теста.';

Button1.caption:='Ok';

Button1.tag:=2;

Button1.Enabled:=TRUE

end

else begin

fn := ParamStr(1);

assignfile(f,fn);

try

reset(f);

except

on EFOpenError do

begin

ShowMessage('Файл теста '+fn+' не найден.');

Button1.caption:='Ok';

Button1.tag:=2;

Button1.Enabled:=TRUE;

exit;

end;

end;

Info;

GetLevel;

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

case Button1.tag of

0: begin

Button1.caption:='Дальше';

Button1.tag:=1;

RadioButton5.Checked:=TRUE;

Button1.Enabled:=False;

ResetForm;

VoprosToScr;

end;

1: begin

summa:=summa+score[otv];

RadioButton5.Checked:=TRUE;

Button1.Enabled:=False;

ResetForm;

if not eof(f)

then VoprosToScr

else

begin

summa:=summa+score[otv];

closefile(f);

Button1.caption:='Ok';

Form1.caption:='Результат';

Button1.tag:=2;

Button1.Enabled:=TRUE;

Itog;

end;

end;

2: begin

Form1.Close;

end;

end;

end;

procedure TForm1.RadioButtonClick(Sender: TObject);

begin

if sender = RadioButton1

then otv:=1

else if sender = RadioButton1

then otv:=2

else if sender = RadioButton3

then otv:=3

else otv:=4;

Button1.enabled:=TRUE;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Image1.AutoSize := False;

Image1.Proportional := True;

RadioButton1.Visible := False;

end;

end.

Заключение

При изучении среды Delphi нам стало ясно, что Реализация в рамках системы Delphi 7 механизма управления групповой работой и версиями кода -- очень важное и полезное решение, без которого немыслимо эффективное создание крупномасштабных приложений. Кроме того, научившись работать с такой системой, любой программист приобретет очень ценный опыт контроля производительности собственного труда и планирования своей работы. Delphi упрощает создание программ, переводя его на визуальный уровень. Это позволяет программисту сразу сосредоточиться на сути решаемой задачи. В этом контексте система Delphi представляется средой, близкой к идеальной. Комфортное место разработчика сочетается с множеством технологий, интегрированных в среду, причём для перехода, допустим, к новой технологии доступа к данным не требуется изучать никаких новых методик. Требуется понимание базовых принципов системы, а весь вспомогательный код будет сгенерирован Delphi автоматически.

иллюстрация файл pascal delphi

Список литературы

1. М.Кэнту Delphi 4 для профессионалов

2. Ч.Калвеpт Delphi 4, Энциклопедия пользователя

3. Стив Тейксейра, Ксавье Пачеко Delphi 5. Руководство разработчика. Том 1. Основные методы и технологии программирования Вильямс, ISBN 5-8459-0016-6 2000 Вильямс

4. Стив Тейксейра И Ксавье Пачеко Delphi 5. Руководство разработчика. Том 2. Разработка компонентов и работа с базами данных 2000 Вильямс

5. А. Архангельский, В. Ильин, М. Тагин Русская справка (HELP) по Delphi 5 и Object Pascal (32 стр. с CD-ROM) Бином, ISBN 5-7989-0168-8

6. А. Архангельский. Программирование в Delphi 5 Бином, ISBN 5-7989-0104-1

7. А. Архангельский. Программирование в Delphi 6 Бином, ISBN 5-7989-0227-7

8. П.Даpахвелидзе, Е.Маpков Delphi 4 в подлиннике

9. П. Дарахвелидзе, Е. Марков, О. Котенок Программирование в Delphi 5 BHV-СПб, ISBN 5-8206-0052-5

10. П.В. Шумаков, В.В. Фаронов "Delphi xx. Руководство разработчика баз данных."

Размещено на Allbest.ru


Подобные документы

  • Разработка программы обработки типизированных файлов с кодом на языке Object Pascal, с использованием компонентов Delphi для ввода и вывода данных. Разработка экранных форм и алгоритма программы. Описание программных модулей и инструкция оператору.

    курсовая работа [1,5 M], добавлен 08.02.2011

  • Принципы и порядок работы с файлами на языке Delphi, получение навыков программирования с использованием файлов. Создание каталога продуктов. Страница палитры компонентов, настраиваемые компоненты и их значения. Текст программы и ее тестирование.

    лабораторная работа [243,9 K], добавлен 09.01.2009

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

    отчет по практике [1,1 M], добавлен 07.12.2010

  • Язык Delphi как строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal, его главные особенности. Стадии создания автоматизированной системы. Листинг программы, разработка интерфейса.

    курсовая работа [933,9 K], добавлен 08.12.2011

  • История интегрированной среды разработки, версии Delphi. Организация библиотеки компонентов. Страница Additional, ряд часто используемых компонентов общего назначения. Исполняемый файл программы "Архиватор текстовых файлов", интерфейс приложения.

    курсовая работа [1019,0 K], добавлен 16.05.2017

  • Общая характеристика интерфейса языка программирования Delphi. Рассмотрение окна редактора кода, конструктора формы, инспектора объектов и расширения файлов. Ознакомление с основными этапами создания и сохранения простого приложения; проверка его работы.

    презентация [184,3 K], добавлен 18.03.2014

  • Создание программного продукта по теме "Назначение и основные свойства палитры компонентов "Standard"", тестирующего знания студентов, в среде языка программирования Delphi. Особенности методики осуществления контроля знаний и состав тестовых заданий.

    курсовая работа [6,1 M], добавлен 17.04.2011

  • Создание Windows-приложения на алгоритмическом языке Object Pascal в среде визуального программирования Delphi, которое, как планируется, будет обеспечивать решение специализированных задач по формированию, обработке на ЭВМ и выводу информации.

    курсовая работа [967,6 K], добавлен 20.05.2008

  • Borland Delphi 7 как универсальный инструмент разработки, применяемый во многих областях программирования, функции: добавление информации об абитуриентах в базу данных, формирование отчетов. Рассмотрение и характеристика основных компонентов Delphi.

    контрольная работа [3,6 M], добавлен 18.10.2012

  • Delphi - среда быстрой разработки, в которой в качестве языка программирования используется типизированный объектно-ориентированный язык Delphi. Варианты программного пакета. Особенности работы, вид экрана после запуска. Описание структуры программы.

    курсовая работа [1,3 M], добавлен 25.11.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.