Примечание. В процессе конструирования кнопка « ок» переименована «выполнить» 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Примечание. В процессе конструирования кнопка « ок» переименована «выполнить»



Пример 3. Заполнение в цикле типа while каждой второй строки Memo случайными числами, см. текст процедур обработки событий.

 

Демонстрационный пример от начала проектирования

Постановка задачи. Пусть необходимо создать проект, построенный на форме, для определения результата вычитания значения из первого числа (уменьшаемого) значения второго числа (вычитаемого). Числа целого типа. Для реализации данной постановки задачи выполняем:

  • Загружаем Delphi 7, см. Рис. 2.1.1.
  • Выбираем Файл, Новый, Приложение, Рис. 2. 1. 2.
  • Открывается окно пустой формы Рис. 2. 1. 3., в которое внедряем следующие компоненты по прилагаемому макету, Рис. 2. 2. 6.

· 3 метки - Label1, Label2, Label3, которым в свойстве Caption даем подпись(Уменьшаемое, Вычитаемое, Разность).

· 3 поля - Edit1, Edit2, Edit3, которым в свойстве меняем имена свойством Name на EdWYCH1, EdWYCH2, EdRes. В прграммном коде уже используются новые имена.

· 2 кнопки - Button1, BitBtn1. Для Button1 даем подпиь в свойстве Caption «Вычислить разность» с переносом слов, для этого свойство Wordwrap в окне Инспектор объектов устанавливаем = True. Для кнопки BitBtn1 выбираем свойство Kind и из списка выбираем bkclose, что имеет значок закрытия, см. макет.

После конструирования формы первая часть модуля должна иметь вид:

 

Рис. 2.2.6. Макет окна формы разрабатываемого проекта

Рис. 2.2.7. Первый раздел модуля, включающий описание данных при внедрении компонентов

Примечание. Как отображено на Рис. 2. 2. 7., одновременно с конструированием формы, компоненты (как экземпляры классов) попадают в раздел описания данных в модуль с именем. После завершения конструирования формы проект желательно сохранить. При сохранении проекта модулю дадим имя WYCHINIT. В соответствии с указанной структурой программы при проектировании пользователем приложения Delphi создает автоматически код головной программы Рис. 2. 2. 8, и отдельных модулей. Примечание. Код головной программы не допускает в него вмешательства.

Рис. 2.2.8. Код головной программы

Создание процедур обработки событий

  • Двойным щелчком по кнопкам создаем заготовки процедур обработки событий – одну для вычисления разности, другую – для закрытия формы. После двойного щелчка по кнопкам их заготовки для кодв появятся в разделе кода, т. е после implementation и {$R *.dfm}.

procedure TForm1.Button1Click(Sender: TObject);

Begin

.......................

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

Begin

.....................

end;

  • Скопировать в вашу заготовку процедуры ее тело из Рис. 2. 2. 9., начиная со слова var и заканчивая end;.

Аналогично скопировать тело второй процедуры, сосоящее всего из одного оператора – Form1.Close, что закрывает форму при нажатии кнопки со значком.

 

Рис. 2.2.9. Коды процедур обработки событий по кнопкам Button1 и BitBtn1

· Выполнить код программы, щелкнув по кнопке панели инструментов.

Результат вычисления отображен на Рис. 2.2.10.

Рис. 2.2.10. Результат вычисления

После конструирования окна формы и выполнения будут созданы файлы, Рис. 2.2.11.

Рис. 2.2.11. Пиктограммы модулей файлов проекта

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


Задания 3. 1. – 3. 10.

Порядок работы:

1. Создать новое приложение, см, соответственно представленного макета.

2. В открывшееся окно формы внедрить компоненты. Проверить правильность внедрения выделенных компонентов в окне Инспектор объектов.

3. Определить свойства каждому выделенному компоненту.

4. В режиме конструктора выделить последовательно каждую кнопку и щелкнуть дважды. Будут созданы заготовки для процедур обработки событий.

Кнопка BitBtn1 имеет подпись

procedure TForm1.BitBtn1Click(Sender: TObject);

Begin

Тело процедуры, см. Приложение1, Задание 2. 1

end;

При двойном щелчке по кнопке BitBtn2(Она получила вид)

BitBtn2 -

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

Тело процедуры, см. Приложение2, Задание 2. 1

end;

Сохранить проект:

1. Создать отдельную папку с именем соответственно заданию.

2. Далее- Файл, Сохранить Проект как...Unit1 под именем, например, UnDate, Project1 – ProDate.dpr.

3. Выполнить проект, нажав на панели инструментов значок

Если будет декларация ошибок(см. Приложение 3) в нижней части окна «Редактор кода», записать текст сообщения и определить ошибку. В таких несложных проектах возникают, как правило, синтаксические ошибки по вине пользователя.

Задание 3. 1. Создание проекта с использованием алгоритма линейной структуры для определения собственного возраста – «Возраст». Макет формы прилагается, см. рис. 3. 1.

· Состав компонентов:

· Memo(многострочный редактор).

· BitBtn(две кнопки)

· Label(одна метка)

Рис. 3. 1. Макет главного окна проекта

Порядок работы:

ü Создать новое приложение, см, Рис. 2.1. 1. – Рис.2.1.2. соответственно представленного макета;

ü В открывшееся окно формы внедрить компоненты: Memo(многострочный редактор), 2 BitBtn(кнопка), Label(метка). Активировать вкладку Additional линейки компонентов, найти Memo и Label, а в вкладке Standard - BitBtn.

ü Проверить правильность внедрения выделенных компонентов в окне Инспектор объектов.

ü Определить свойства каждому выделенному компоненту.

ü В Memo занести текст с макета (в Инспекторе объектов выполнить св-во Items, TStrings …).

ü В режиме конструктора выделить последовательно каждую кнопку и щелкнуть дважды. Будут созданы заготовки для процедур обработки событий

Кнопка BitBtn1 имеет подпись

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

Тело процедуры, см. Приложение 2, Задание 3. 1

end;

При двойном щелчке по кнопке BitBtn2(Она получила вид)

BitBtn2 -

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

Тело процедуры, см. Приложение 2, Задание 3. 1

end;

Сохранить проект.

ü Создать отдельную папку с именем Возраст на флеш – носителе;

ü Далее- Файл, Сохранить проект как...Unit1 под именем UnDate, Project1 – ProDate.dpr.

ü Выполнить проект, нажав на панели инструментов значок . Если будет декларация ошибок, см. в нижней части окна - «Редактор кода», записать текст сообщения и определить ошибку. В таких несложных проектах возникают, как правило, синтаксические ошибки по вине пользователя.

Задание 3. 2. «Светофор»

Теоретическая и практическая работа создания проекта на основе примера «Светофор» (алгоритм ветвящейся структуры). Постановка задачи – в тексте Memo.

Рис. 3. 2. Макет окна проекта

Состав компонентов:

Memo (многострочный редактор), Label (метка), Button (кнопка), BitBtn (кнопка со значком).

Задание выполняется, как в предыдущем примере/

Задание 3. 3. Теоретическая и практическая работа создания проекта «Скорость движения» на основе алгоритма циклической структуры. Задание выполняется, как описано ранее.

Рис. 3. 3. Макет окна проекта «Скорость движения»

Задание 3. 4. Теоретическая и практическая работа создания проекта «Расчет суммы элементов главной диагонали матрицы» на основе алгоритма циклической структуры с использованием таблиц.

Рис. 3. Макет окна проекта

Состав компонентов в форме: StringGrid, 2 счетчика с полем SpinEdit, BitBtn, Label. Первым счетчиком задается значение, на которое умножается каждый элемент главной диагонали, во второй счетчик выводится сумма.

Задание 3. 5. Теоретическая и практическая работа создания проекта «Реализация товаров» на основе алгоритма циклической структуры с использованием компонентов StringGrid и Chart для графического отображения результата.

Состав компонентов: StringGrid, Button, Chart, BitBtn.

Задание выполняется, как описано ранее.

Задание 3. 6. Теоретическая и практическая работа создания проекта с графическим отображением данных

Состав компонентов: 4 - SpeedButton, 4 - Panel(панели), 4 – Chart.

Задание выполняется, как описано ранее.

Задание 3. 7. Создание проекта сортировки массива случайных величин.

Состав компонентов в форме: TrackBar – 1, Button – 1, label – 4, panel – 2, ВitBtn – 1. Примечание. В задании предусмотрены следующие процедуры обработки событий по: BitBtn1, Button 1, formCreate,TrackBarChange.

Задание 3. 8. Создание проекта перевода чисел из 2 – ой системы счисления в 10 - ю и обратно.Состав компонентов: Radiogroup - 1, Edit – 1,

Задание 3. 9. Вычислить среднее арифметическое массива, созданного на основе элементов списка ListBox2 с именем LstBox2, используя стстистическую функцию Mean.

Состав компонентов: ListBox1 - LstBox, ListBox2 – LstBox2, Label, Edit, BitBtn – 2. В задании создаются 3 процедуры обработки событий по: кнопкам BitBtn, форме - FormCreate. В предложение Uses добавить модуль Math. Строго отследить содержимое процедур при копированиикода.

.

Задание 3. 10. Работа с файлами с использованием компонента OpenDialog.Выбрать содержимое текстового файла с флеш – носитея в Memo в режиме диалога. Состав компонентов: OpenDialog(страница Dialogs), Button – 1, Memo – 1, см. Рис. 2. 1. 3.

Рис. 3. Раздел - Данные модуля UnDial и окно формы в процессе конструирования(дубль см. Приложение 2)

Рис. 3. Код процедур обработки события для копирования.


Приложение 1.

Классификация типов данных

Тип данных это:

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

· множество операций разрешенных для данного типа.

Ø Простые:

ü Порядковые:

· Целые

· Логический(Boolean)

· Символьный (Char)

· Перечисляемый(val1,…,valn)

· Интервальный (диапазоны - min..max)

ü Вещественные(действительные)

Ø Строковые(string,string[n])

Ø Структурные:

· Массив(array…of…)

· Множество(set…of)

· Запись(record…end)

· Файл:

v Текстовый(TextFile)

v Типизированный(File of…)

v Нетипизированный(file)

Ø Классы(class…end)

· Ссылки на класс()

· Интерфейсы

Ø Указатели:

· Типизированные(^,@)

· Нетипизированные(pointer)

Ø Процедурные:

· Процедура (procedure)

· Функция (function)

Ø Тип Variant

Первоначально рассмотрим простые типы, а затем - строковые. Как видим из перечня типов, простые представляются порядковыми и вещественными. Каждому значению порядкового типа соответствует целое число, характеризующее его порядковый номер в заданном для этого типа диапазоне. Для целого – само его значение служит порядковым номером

.Значение для символов – соответствие коду ASCII(от 0..255).

Значения для типа Boolean – 1 или0, т. е. ( True,False ).

Значения перечисляемых и интервальных типов определяются порядком описания допустимых значений – 0,1,2,….Перечисляемые и интервальные типы позволяют ограничить количество возможных значений, принимаемых переменной в виде интервала или списка перечислений.

Определения (объявления) указанных типов могут быть выполнены в разделе объявления переменных var, либо описанием типа в разделе типов - type <имя типа>=(<имя знач.1>,…,<имя знач.п>);

Var GK_Tw: (Philips,Samsung,LG); перечисляемый тип.-

Var Alphabet: ‘b’..’f’;

type <имя типа>=(<мин._знач.>..<макс._знач.>); - интервальный тип. Значение переменной ограничено диапазоном ‘b’..’f. ’ Проще использовать описания в разделе Var.

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

Тип Диапазон Размер в байтах
Integer -2147483648..2147483647  
Cardinal 0..429467295  
ShortInt -128..127  
Smallint -32768..32767  
LongInt -2147483648..2147483648  
Int64 -2 ..2 -1  
Byte 0..255=$FF  
Word 065535=$FFFF  
LongWord 0..429467295=$FFFFFFFF  
  Логический тип  
Boolean True,False  

 

Из множества целых типов в вычислениях лучше использовать (по возможности) Integer и Cardinal.

Символьный тип Char (). Его значением являются символы из множества ASCII.

Перечисляемый (val1,…,valn), где val1,…,valn – упорядоченное множество имен. Например,

Диапазоны. Тип диапазон представляет подмножество величин базового (порядкового типа). Использует ограничения путем задания минимального и максимального значений.

Если для определения диапазона используются числовые или символьные константы, то их можно объявлять в разделе описания переменных, например, var Nomer: 25..50;



Поделиться:


Последнее изменение этой страницы: 2016-04-08; просмотров: 361; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.161.222 (0.059 с.)