МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Разработка интерактивной среды обучения работе

    Разработка интерактивной среды обучения работе

    Министерство образования Украины

    Харьковский государственный технический университет радиоэлектроники

    Кафедра ПО ЭВМ

    Курсовой проект по дисциплине:

    «Основы программирования и алгоритмические языки»

    Тема:

    «Разработка интерактивной среды обучения работе в Borland Delphi»

    |Работу выполнил: |Руководитель: |

    |Ст. гр. ИПД-99-1 | |

    |Иванов А. В. | |

    | |Работа защищена с оценкой: |

    | | |

    | | |

    | |Комиссия: |

    | |доц. Ерохин А. Л. |

    | |доц. Четвериков Г. Г. |

    | |проф. Дударь З. В. |

    Харьков, 2000 г.

    ХГТУРЭ

    Кафедра ПО ЭВМ

    Задание

    на курсовую работу по дисциплине «ОП и АЯ»

    ст. гр. ИПД-99-1 Иванова А. В.

    Тема: «Разработка интерактивной среды обучения работе в Borland Delphi»

    І Разработать интерактивную среду обучения работе в Delphi, котрая

    имела бы такие возможности:

    . Подавать учебный материал в наглядном виде

    . Иметь возможности иллюстрирования

    . Иметь средства для тестирования приобретенных знаний

    ІІ Типизированные константы. Их синтаксис и применение.

    Дата выдачи задания: Дата защиты:

    Студент: Иванов А. В.

    Руководитель:

    Реферат

    Данная работа содержит 34 страницы, включая приложение; 2 таблицы; 4

    иллюстрации.

    Цель работы: создать, используя систему программированя Delphi,

    обучающую программу

    Объект исследования: обучающая система, разработанная в Delphi 5,

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

    файлам HTML. В перспективе планируется объединение формата уроков с данным

    форматом.

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

    DELPHI, ОБУЧАЮЩАЯ СИСТЕМА, ТИПИЗИРОВАННЫЕ КОНСТАНЫ, ФОРМАТ ФАЙЛОВ УРОКОВ,

    ПЕРСПЕКТИВЫ

    Содержание

    Реферат 3

    Содержание 4

    Введение 5

    1 Описание программы 6

    1. 1 Основные характеристики 6

    1. 2 Руководство для пользователя 6

    1. 3 Описание команд формата .LES 7

    1. 3. 1 Текстовые команды 8

    1. 3. 2 Графические команды 9

    1. 3. 3 Логические команды 10

    1. 4 Описание внутренней структуры программы 11

    1. 4. 1 Общая организация 11

    1. 4. 2 Алгоритмы, достойные рассмотрения 11

    1. 4. 3 Перспективы 12

    2 Типизированные константы 13

    2. 1 Общая характеристика 13

    2. 2 Константы-массивы 13

    2. 3 Константы-записи 14

    2. 4 Процедурные константы 15

    2. 5 Константы-указатели 16

    2. 6 Примеры программ 17

    Выводы 21

    Перечень ссылок 22

    Приложение А 23

    Введение

    На Земле каждый час увеличивается количество компьютеров. Они

    работают с программами, количество которых тоже растет. Написаны все

    программы с использованием разных языков программирования – С++, Delphi,

    Assembler. Изучение таких языков мало уступает по сложности изучению

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

    Для его облегчения и упрощения создаются различные обучающие

    программы. Компьютер учит человека. Такой «учитель» никогда не устает,

    всегда объективен, не обижается…

    В данной работе представлена подобная программа, способная (как мне

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

    и языка Паскаль.

    1 Описание программы

    1. 1 Основные характеристики

    Рассматриваемая программа имеет возможность использования уроков,

    хранящихся в файлах, что позволяет создавать уроки, не изменяя кода

    программы.

    Файл урока представляет собой текстовый файл с расширением .LES; в нем

    сдержится текст урока и специальные команды, заставляющие программу,

    выполнять некоторые действия, например, выводить текст таким-то цветом,

    изменять размер шрифта, вставлять картинки. Описание команд будет приведено

    ниже.

    1. 2 Руководство для пользователя

    Выполняемый файл называется LD. EXE. После его запуска на экране

    появляется окно, показанное на рис. 1. 1

    [pic]

    Рисунок 1. 1 – Окно, возникающее после запуска

    По нему «ползет» надпись: «Добро пожаловать в программу Learn

    Delphi!!!». Для входа в программу надо нажать кнопку «ОК». Следующее окно

    показано на рис. 1. 2:

    [pic]

    Рисунок 1. 2 – Окно выбора нужного урока

    Пользователь выбирает нужный ему урок и нажимает кнопку «Загрузить».

    После этого он видит основное окно, в которое загружена первая страница

    урока. Это окно представлено на рис. 1. 3 (стр. 8).

    В правом нижнем углу окна помещены три кнопки SpeedButton:

    Переход на предыдущую страницу

    Переход на следующую страницу

    Выход из текущего урока (появляется окно выбора уроков).

    1. 3 Описание команд формата .LES

    Как уже было сказано выше, данная программа имеет специальную систему

    команд. Они делятся на три типа:

    . Текстовые

    . Графические

    . Логические.

    Все команды предваряются символами /:, чтобы их можно было отличить

    от обычного текста, выводимого на экран.

    Все, что не имеет в начале символов /: будет выведено!

    [pic]

    Рисунок 1. 3 – Окно урока

    1. 3. 1 Текстовые команды

    Таблица 1. 1 – Текстовые команды

    |/:size | Устанавливает размер шрифта. Размер вводится сразу после |

    |размер шрифта |команды. |

    | |Пример: |

    | |Таблица 1. 1 – Текстовые команды (продолжение) |

    | |/:size |

    | |750 |

    |/:color | Устанавливает цвет выводимого текста. Поддерживает основные |

    |цвет |цвета: red, blue, black, yellow, green, grey. |

    | |Пример: |

    | |/:color |

    | |red |

    |/:style | Устанавливает стиль выводимого текста: |

    |стиль |1 – нормальный, |

    | |2 – полужирный, |

    | |3 – подчеркнутый, |

    | |4 – курсив, |

    | |5 – перечеркнутый. |

    | |Пример: |

    | |/:style |

    | |5 |

    |/:font | Загружает другой шрифт. |

    |имя |Пример: |

    | |/:font |

    | |Times New Roman |

    |/:newpage |Дает знать системе, что дальше следует новая страница. |

    1. 3. 2 Графические команды

    В данной версии программы имеется только одна графическая команда –

    /:picture, которая загружает и помещает по указанным координатам картинку

    из файла в формате .BMP.

    Синтаксис:

    /:Picture

    X-координата рисунка.

    Y-координата. рисунка.

    имя файла рисунка

    На одну страницу можно поместить до трех картинок. Этого в

    большинстве случаев достаточно.

    1. 3. 3 Логические команды

    Логическая команда в данной версии тоже одна. Это /:question.

    Синтаксис:

    /:question

    текст вопроса

    правильный ответ (1-"Да" 2-"Нет")

    Результатом выполнения является присутствие на странице вопроса,

    обведенного двойной красной рамкой. Справа, после текста вопроса, находятся

    две кнопки – «Да» и «Нет». Пользователь нажимает на кнопку, которая

    символизирует, по его, юзера, мненеию, правильный ответ и кнопки сразу

    становятся неактивными. Программа посчитывает количество правильных и

    неправильных ответов и в конце работы выставляет оценку.

    На странице не допускается размещать больше одного вопроса!

    Версия программы, представленная в курсовой работе является DEMO-

    версией, поэтому вообще в уроке допускается лишь одна логическая команда.

    4 Описание внутренней структуры программы

    1. 4. 1 Общая организация

    Программа имеет четыре окна: frmMain, frmRun, frmLesson и frmRes. В

    табл. 1. 2 представлены функции, выполняемые каждым из них:

    Таблица 1. 2 Функции, выполняемые окнами в программе

    |Название окна |Функции, которые выполняет в программе |

    |frmMain | Данное окно появляется, когда пользователь запускает |

    | |программу. Оно служит как-бы приглашением к работе. |

    | |Показано данное окно на рис. 1. 1. |

    |FrmRun | После frmMain пользователь попадает в окно frmRun. Здесь|

    | |он может выбрать нужный урок и загрузить его или выйти из|

    | |программы. Показано оно на рис. 1. 2. |

    |FrmLesson | Основное окно для обучения. В нем выводится текст урока,|

    | |все картинки и вопросы. В модуле этого окна описаны все |

    | |подпрограммы для обработки файлов уроков. Показано это |

    | |окно на рис. 1. 3. |

    |FrmRes | После прохождения урока пользователь должен знать, как |

    | |он усвоил материал. В данном окне помещена таблица с |

    | |числом вопросов и правильных ответов. Это очнь простое |

    | |окно, поэтому не представлено на рисунках. |

    1. 4. 2 Алгоритмы, достойные рассмотрения

    Одним из удачно реализованных алгоритмов автор считает реализацию

    распознавания команд. В приложении А, в конце записки представлен исходный

    код программы, в котором можно рассмотреть эти процедуры. Текст выводится в

    окне с помощью объекта Canvas. Это вызвано необходимостью помещать картинки

    вперемежку с текстом. Проще всего реализуется такая идея с применением

    Canvas’a. При тестировании возникла проблема: при перерисовке окна (в

    случае временного перекрытия другим окном и т. п.) объекты, выведенные с

    помощью Canvas’a, не перерисовывались. Исчезали крупные фрагменты текста. В

    конце-концов проблема решена: запускается обработчик события OnPaint.

    Каждая страница урока загружается в специальную переменную (процедура

    LoadPage), а потом выводится на экран процедурой DrawPage. При этом и

    распознаются команды.

    4. 3 Перспективы

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

    «прожектом». В следующих версиях программы, которые, несомненно, появятся,

    будут усовершенствованы возможности тестирования, добавятся несколько

    логических и графических команд, а чуть позже – и специальный редактор для

    упрощения создания уроков.

    Кроме того, используя возможности Windows, можно будет «заставить»

    обучалку взаимодействовать с системой программирования Delphi, что повысит

    наглядность примеров и тогда Learn Delphi способна будет готовить неплохих

    специалистов в области компьютерных технологий.

    Но и это еще не все! LD – универсальная система, в файл урока можно

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

    другим предметам, даже несколько удаленным от информатики, как, например,

    история, иностранные языки.

    2 Типизированные константы

    2. 1 Общая характеристика

    Язык Паскаль, и, соответственно, Делфи, имеет специальный вид

    констант – типизированные. В отличие от обычных, констант, они могут

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

    установленной директиве компилятора {$J+} они ведут себя как обычные

    инициализированные переменные. При {$J-} значения не могут изменяться.

    Синтаксис: Const имя_константы: тип =значение

    Пример: Const Max: integer=200

    2. 2 Константы-массивы

    Чтобы задать какую-либо константу-массив, нужно описать значения всех

    элементов. Значения описываются в круглых скобках, через запятую. Например:

    Const Digits: array[1..5] of byte=(1, 2, 3, 4, 5)

    В данном примере объявляется константа-массив Digits типа Byte. Ей

    сразу присваиваются числа от 1 до 5.

    Константы-массивы часто используются для задания строк,

    оканчивающихся символом #0. В этом случае описание выглядит так:

    Const Stroka: array[1..5] of char=(‘Hello’)

    Константой может быть и многомерный массив. Для этого каждое его

    измерение помещается в круглые скобки. Пример:

    type TCube = array[0..1, 0..1, 0..1] of Integer;

    const Maze: TCube = (((0, 1), (2, 3)), ((4, 5), (6,7)))

    Создается массив Maze, где:

    Maze[0,0,0] = 0

    Maze[0,0,1] = 1

    Maze[0,1,0] = 2

    Maze[0,1,1] = 3

    Maze[1,0,0] = 4

    Maze[1,0,1] = 5

    Maze[1,1,0] = 6

    Maze[1,1,1] = 7

    Все константы-массивы не могут содержать файловых переменных ни на

    каком уровне.

    2. 3 Константы-записи

    Для задания константы-записи необходимо заполнить ее поля согласно

    синтаксису: Имя_поля: значение. Значения разделяются точками с запятой и

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

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

    каком они размещены в описании записи. Поле-описатель, если такое есть,

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

    выбранный описателем может использоваться.

    Примеры:

    type

    TPoint = record

    X, Y: Single;

    end;

    TVector = array[0..1] of TPoint;

    TMonth = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);

    TDate = record

    D: 1..31;

    M: TMonth;

    Y: 1900..1999;

    end;

    const

    Origin: TPoint = (X: 0.0; Y: 0.0);

    Line: TVector = ((X: -3.1; Y: 1.5), (X: 5.8; Y: 3.0));

    SomeDay: TDate = (D: 2; M: Dec; Y: 1960);

    Все константы-записи не могут содержать файловых переменных ни на

    каком уровне.

    2. 4 Процедурные константы

    Для определения процедурной константы нужна процедура с подходящими

    параметрами. Например:

    function Calc(X, Y: Integer): Integer;

    begin

    ...

    end;

    type TFunction = function(X, Y: Integer): Integer;

    const MyFunction: TFunction = Calc;

    После такого описания, функция вызывается:

    I := MyFunction(5, 7)

    Вы также можете присвоить константе значение nil.

    2. 5 Константы-указатели

    Такие константы содержат адрес в памяти переменной или подпрограммы.

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

    она указывает, использовался. Примеры:

    Константа содержит адрес переменной:

    const PI: ^Integer = @I;

    Константа содержит адрес подпрограммы:

    const PF: Pointer = @MyFunction;

    Вы можете объявить константу типа PChar со строчным значением, т. к.

    литералы хранятся в памяти как глобальные константы.

    Адреса локальных (размещенных в стеке) и динамических переменных не

    могут быть помещены в подобную константу.

    2. 6 Примеры программ

    Ниже приведены примеры программ, использующих типизированные

    константы. Они написаны в Delphi, но в виде консольного приложения – чтобы

    не загромождать текст программ описанием форм и других объектов, к которым

    данная задача не имеет отношения.

    Тексты программ-примеров помещены на дискете с курсовой работой в

    директории EXAMPLES.

    Пример 1.

    program Example1;

    {$APPTYPE CONSOLE}

    {Данная программа-пример демонстрирует применение констант-массивов.

    Преобразует численный формат даты в обычный, с названием месяца}

    uses

    SysUtils;

    const month:array[1..12] of

    string[20]=('January','February','March','April','May',

    'June','July','August','September','October','November', 'December');

    var d:string[10];

    s:string[30];

    s1:string[3];

    begin

    write('Enter date (dd:mm:yyyy): ');

    readln(d);

    s:='';

    if copy(d,1,1)<>'1' then begin

    if copy(d,2,1)='1' then s1:='`st' else

    if copy(d,2,1)='2' then s1:='`nd' else

    if copy(d,2,1)='3' then s1:='`rd'

    end else s1:='`th';

    s:=copy(d,1,2)+s1+' of '+month[strtoint(copy(d,4,2))]+' ' +copy(d,7,4);

    writeln(s);

    readln

    end.

    Пример 2.

    unit Example2frm;

    {Этот пример показывает,как применяются константы-записи. Здесь строится

    многоугольник (с применением метода Polyline объекта Canvas),а координаты

    вершин многоугольника содержатся в массиве констант-записей.}

    interface

    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;

    type

    TForm1 = class(TForm)

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form1: TForm1;

    PolyLines:array[1..4] of tpoint=((x:170;y:20),(x:320;y:320),(x:20;y:320),

    (x:170;y:20));

    implementation

    {$R *.DFM}

    procedure TForm1.Button1Click(Sender: TObject);

    begin

    form1.Canvas.Pen.Width:=3;

    form1.canvas.Polyline(polylines)

    end;

    end.

    Окно этой программы-примера приведено на рис. 2. 1 (стр. 20):

    [pic]

    Рисунок 2. 1 – Окно программы-примера

    Выводы

    В данной работе представлена образовательная программа, разработанная

    в среде программирования Borland Delphi 5. К ней прилагается файл урока,

    описывающего основы Delphi. Но вообще, эту систему обучения можно

    «заставить» обучать какой-угодно дисциплине – для этого достаточно создать

    файлы уроков и записать их имена в файл конфигурации.

    В процессе разработки программы детально изучены графические

    возможности Делфи и объекта Canvas.

    Во второй части работы рассмотрены типизированные константы в

    Паскале, их применение. Даны примеры программ.

    Перечень ссылок

    1. Культин Н. Delphi 4. Программирование на Object Pascal. BHV, Санкт-

    Петербург, 1999. – 480 с., ил.

    2. Дэн Оузьер и др. Delphi 3. Освой самостоятельно. М.: “Издательство

    БИНОМ”, 1998 г. – 560 с.: ил.

    3. Бондарев В. М., Рублинецкий В. И., Качко Е. Г. Основы программирования.

    Харьков: Фолио; Ростов н/Д: Феникс, 1998 – 368 с.

    4. Справочная система Delphi

    5. Фаронов В. В. Delphi 4. Учебный курс. М.: «Нолидж», 1999 – 464 с., ил.

    Приложение А

    Ниже дан исходный код всех модулей программы

    unit Mainfrm;

    interface

    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    ExtCtrls, StdCtrls;

    type

    TfrmMain = class(TForm)

    Image1: TImage;

    Timer1: TTimer;

    Button1: TButton;

    procedure Timer1Timer(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    frmMain: TfrmMain;

    implementation

    uses runfrm;

    {$R *.DFM}

    var x:integer;

    procedure TfrmMain.Timer1Timer(Sender: TObject);

    var r:trect;

    begin

    r.Left:=x;

    r.Top:=150;

    r.Bottom:=170;

    r.Right:=frmmain.Width;

    frmmain.canvas.fillrect(r);

    frmmain.canvas.TextOut(x,151,'Добро пожаловать в программу "Learn

    Delphi" !!!');

    dec(x,3);

    if x0 then frmresult.show else frmrun.Show

    end;

    procedure TfrmLesson.SpeedButton3Click(Sender: TObject);

    begin

    frmlesson.hide;

    frmresult.show

    end;

    procedure TfrmLesson.FormPaint(Sender: TObject);

    begin

    texty:=2;

    if first then begin

    first:=false;

    fontemp:=frmlesson.canvas.font;

    drawpage

    end else begin

    nopaint:=true;

    drawpage;

    nopaint:=false

    end

    end;

    procedure TfrmLesson.FormShow(Sender: TObject);

    var s,name:string;

    begin

    nq:=0;

    first:=true;

    nopaint:=true;

    assignfile(f,lessonname);

    reset(f);

    while not eof(f) do begin

    readln(f,s);

    if s='/:question' then inc(nq)

    end;

    closefile(f);

    reset(f);

    readln(f,name);

    frmlesson.Caption:=name;

    textY:=2;

    loadpage;

    frmlesson.Canvas.textout(20,20,'');

    end;

    procedure TfrmLesson.FormDeactivate(Sender: TObject);

    begin

    nopaint:=true

    end;

    procedure TfrmLesson.Timer1Timer(Sender: TObject);

    var q:tcolor;

    x,y:integer;

    begin

    { if not frmlesson.Visible then exit;

    x:=random(frmlesson.Width);

    y:=random(frmlesson.Height);

    if (x in [pic1.Left..pic1.Left+pic1.Width]) or (y in

    [pic1.Top..pic1.Top+pic1.Height]) then exit;

    q:=frmlesson.canvas.pixels[x,y];

    if q<>clwhite then begin

    nopaint:=true;

    texty:=1;

    drawpage

    end;

    frmlesson.canvas.pixels[x,y]:=clred;}

    end;

    procedure TfrmLesson.FormCreate(Sender: TObject);

    begin

    npq:=0;

    ap:=1;

    pp:=0;

    numpage:=1;

    end;

    procedure TfrmLesson.cmdYesClick(Sender: TObject);

    begin

    if ap=1 then inc(npq);

    frmlesson.cmdYes.enabled:=false;

    frmlesson.cmdno.enabled:=false;

    end;

    procedure TfrmLesson.cmdNoClick(Sender: TObject);

    begin

    if ap=2 then inc(npq);

    frmlesson.cmdYes.enabled:=false;

    frmlesson.cmdno.enabled:=false;

    end;

    procedure TfrmLesson.SpeedButton2Click(Sender: TObject);

    begin

    canvas.Rectangle(0,0,width,height);

    pic1.Hide;

    pic2.Hide;

    pic3.Hide;

    frmlesson.Repaint;

    { pic1.show;

    pic1.hide; }

    inc(numpage);

    if not speedbutton1.enabled then speedbutton1.Enabled:=true;

    frmlesson.cmdYes.hide;

    frmlesson.cmdno.hide;

    { frmlesson.pic1.hide;}

    frmlesson.pic2.hide;

    frmlesson.pic3.hide;

    texty:=1;

    sp:=0;

    loadpage;

    drawpage;

    if eof(f) then speedbutton2.Enabled:=false

    end;

    procedure TfrmLesson.SpeedButton1Click(Sender: TObject);

    var i:byte;

    q:integer;

    s:string[100];

    begin

    pic1.Hide;

    pic2.Hide;

    pic3.Hide;

    frmlesson.Repaint;

    dec(numpage);

    if not speedbutton2.enabled then speedbutton2.Enabled:=true;

    closefile(f);

    reset(f);

    canvas.Font:=pagefonts[numpage];

    if numpage=1 then begin

    readln(f);

    speedbutton1.Enabled:=false

    end else begin

    i:=0;

    while i

    readln(f,s);

    if s='/:color' then begin

    readln(f,s);

    if s='black' then q:=clblack;

    if s='red' then q:=clred;

    if s='blue' then q:=clblue;

    if s='green' then q:=clgreen;

    if s='gray' then q:=clgray;

    if s='yellow' then q:=clyellow;

    frmlesson.canvas.font.Color:=q

    end;

    if s='/:name' then begin

    readln(f,s);

    canvas.Font.Name:=s

    end;

    if s='/:size' then begin

    readln(f,q);

    canvas.Font.Size:=q

    end;

    if s='/:newpage' then inc(i)

    end

    end;

    { for i:=1 to pages[pp-2] do readln(f);

    for i:=1 to pp do pages[pp]:=0;

    dec(pp,2);

    if pp=0 then begin

    readln(f);

    frmlesson.canvas.Font:=fontemp;

    end;}

    frmlesson.cmdYes.hide;

    frmlesson.cmdno.hide;

    frmlesson.pic1.hide;

    frmlesson.pic2.hide;

    frmlesson.pic3.hide;

    texty:=1;

    sp:=0;

    loadpage;

    if pp=1 then speedbutton1.enabled:=false;

    drawpage;

    end;

    procedure TfrmLesson.FormActivate(Sender: TObject);

    begin

    formcreate(sender);

    end;

    end.

    unit resfrm;

    interface

    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls, Grids;

    type

    TfrmResult = class(TForm)

    StringGrid1: TStringGrid;

    Button1: TButton;

    procedure FormActivate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    frmResult: TfrmResult;

    implementation

    uses runfrm, lessonfrm;

    {$R *.DFM}

    procedure TfrmResult.FormActivate(Sender: TObject);

    begin

    with stringgrid1 do begin

    colwidths[0]:=150;

    cells[1,0]:='Количество';

    cells[0,1]:='Вопросов';

    cells[0,2]:='Правильных ответов';

    cells[1,1]:=inttostr(frmlesson.nq);

    cells[1,2]:=inttostr(frmlesson.npq);

    end

    end;

    procedure TfrmResult.Button1Click(Sender: TObject);

    begin

    frmresult.Hide;

    frmrun.Show

    end;

    procedure TfrmResult.FormClose(Sender: TObject; var Action: TCloseAction);

    begin

    action:=cahide;

    frmrun.Show

    end;

    end.

    -----------------------

    [pic]

    [pic]

    [pic]


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.