Фактическая температура воздуха в Находке on-line. Прогноз погоды в Находке  

Лабораторные программирование. Задания и исходники(Delphi 7)

Ищем и рекомендуем книги ИТ-тематики, обсуждаем исходники.

Модератор: Aroch

Сообщение Char0Day » Вс ноя 04, 2007 6:43 pm

Лабораторная работа №15 по дисциплине "Программирование"

ТЕМА: Использование поля для ввода целых чисел, таймера.

ПРОГРАММА 15-1
--------------

4. Создайте проект типа Application на основе ПРОГРАММЫ 14-1 (в том числе
с использованием формы, компонентов и обработчиков событий этой ПРОГРАММЫ 14-1)
и разместите в форме следующие компоненты с вкладок Палитры компонентов
(Рисунок 1):
главное меню MainMenu с вкладки Standard (см. также Рисунки 2 и 3);
раскрывающийся список ComboBox с вкладки Standard (см. также п.7);
поле для ввода целых чисел SpinEdit с вкладки Samples (см. также п.8);
таймер Timer с вкладки System (см. также п.9).



Рисунок 1

5. Команды главного меню окна приложения "Цвет формы" и "Интервал" должны
раскрываться как на Рисунках 2 и 3:


Рисунок 2


Рисунок 3

6. При выполнении команд меню "Цвет формы => По умолчанию" форма должна приобретать
стандартный цвет.

7. После выполнения команд меню "Цвет формы => По списку" в форме должен появиться
(используется свойство Visible) раскрывающийся список (компонент ComboBox
с вкладки Standard Палитры компонентов), из которого может быть выбран цвет,
приобретаемый формой (Рисунок 4).
При этом команда этого же меню "Убрать список" должна становиться доступной
(используется свойство Enabled) и затем, если список будет снова убран выполнением
команды "Убрать список", то эта команда должна опять стать недоступной.


Рисунок 4

8. После выполнения команд меню "Интервал => Установить интервал" в форме должно
появиться поле для ввода целых чисел (компонент SpinEdit с вкладки Samples Палитры
компонентов), из которого может быть выбрано или в которое может быть введено
целое число (свойство Value) с шагом изменения, задаваемым свойством Increment.
При этом команда этого же меню "Убрать установку интервала" должна становиться
доступной, и затем, если это поле будет снова убрано выполнением
команды "Убрать установку интервала", то эта команда должна опять стать
недоступной.

9. После выполнения команд меню "Цвет формы => С интервалом времени" форма должна
начать менять свой цвет в циклическом режиме с интервалом времени миллисекундах,
заданным в поле для ввода целых чисел (при этом должны появляться те же
цвета и в том же порядке, как в раскрывающемся списке).
Для реализации изменения цвета формы с заданным интервалом времени должен
использоваться таймер (компонент Timer с вкладки System Палитры компонентов)
Свойство Interval таймера задает продолжительность интервала времени
в миллисекундах, по истечении которого произойдет событие OnTimer (если значение
свойства Interval равно нулю, то таймер перестает работать).
Свойство Enabled таймера при значении True разрешает произойти событию OnTimer,
при значении False это событие не сможет произойти.
ВНИМАНИЕ!
При изменении режима изменения цвета формы командами меню
"Цвет формы => По умолчанию" или "Цвет формы => По списку"
следует прекращать работу таймера.

10. При выполнении команд меню "Цвет формы => Выход" приложение должно завершать
работу.

11. Имена всех команд должны быть доступны при использовании соответствующих
сочетаний клавиш с подчеркнутым символом в названии команды или компонента
(в свойстве Caption должен использоваться символ & перед тем символом, который
будет подчеркнутым).



Исходный код (Delphi 7):
Вложения
lab15.rar
(102.13 Кб) Скачиваний: 67
Char0Day
Горожанин
 
Сообщения: 500
Зарегистрирован: Пн июл 24, 2006 1:34 pm
Откуда: г. Находка

Сообщение Char0Day » Вс ноя 04, 2007 6:47 pm

Лабораторная работа №16 по дисциплине "Программирование"

ТЕМА: Перемещение окон и компонентов.


ПРОГРАММА 16-1
--------------

3. Создайте проект типа Application, состоящий из двух форм Form1 и Form2
с компонентами в соответствии с Рисунками 1 и 2 (форму можно добавить в проект
командами меню "File => New => Form").


Рисунок 1



Рисунок 2

4. Окно приложения после запуска должно иметь вид, как на Рисунке 3.



Рисунок 3

5. После нажатия на кнопку "Пуск" название этой кнопки должно замениться на "Стоп",
окно формы Form2 должно появиться на экране (для чего свойство Visible этой формы
должно получить значение true) и затем оно должно начать перемещаться вплотную
вокруг окна формы Form1 по часовой стрелке и менять свой вид с интервалом
в 0,5 секунды в циклическом режиме (то есть после состояния 55 снова должен
произойти переход в состояние 00 и так далее). Синхронно с окном формы Form2
в окне формы Form1 должна появиться и затем перемещаться вплотную к границе окна
формы и менять свой вид еще одна кнопка. Все состояния в порядке их следования похожи на движение стрелок механических часов.
6. После нажатия на кнопку "Стоп" название этой кнопки должно замениться на "Пуск",
и должны остановиться перемещения окна формы Form2 и кнопки в окне формы Form1
После нажатия сейчас на кнопку "Пуск" название этой кнопки снова должно замениться
на "Стоп", и перемещения окна формы Form2 и кнопки в окне формы Form1 должны
начаться с состояния 00 (Рисунок 4).

7. Для определения места расположения на экране окна формы Form2 можно использовать
значения свойств Left, Top, Height, Width форм Form1 и Form2 (целые числа,
являющиеся значениями этих свойств, определяют, соответственно, положение левой и
верхней границ окна формы на экране, высоту и ширину окна формы), а также операцию
Div (для нахождения целой части от деления двух целых чисел).
При своих перемещениях окно формы Form2 всегда должно примыкать к границе окна
формы Form1, находясь либо на середине горизонтальной или вертикальной границы
окна формы Form1, либо рядом с углом окна формы Form1 (Рисунок 4).

8. Для определения места расположения кнопки в окне формы Form1 можно использовать
значения свойств Left, Top, Height, Width кнопки (целые числа, являющиеся
значениями этих свойств, определяют, соответственно, положение левой и верхней
границ кнопки внутри клиентской части окна формы, доступной для расположения
компонентов в этом окне, высоту и ширину кнопки), значения свойств ClientHeight,
ClientWidth формы Form1 (целые числа, являющиеся значениями этих свойств,
определяют, соответственно, высоту и ширину клиентской части окна формы),
а также операцию Div.
При своих перемещениях кнопка всегда должна примыкать к границе клиентской части
окна формы, находясь либо на середине горизонтальной или вертикальной границы
клиентской части окна формы, либо на расстоянии своей ширины или высоты от другой
границы (Рисунок 4).

9. Для преобразований можно использовать функцию
IntToStr(Value: Integer): String – функция формирует строку, содержащую
преобразованное в символьный вид целое число
Value.

10. Рекомендуется выполнить сначала одну часть задания, относящуюся, например,
к перемещению окна формы Form2, а затем другую часть задания, относящуюся
к перемещению кнопки внутри окна формы Form1.


Исходный код (Delphi 7):
Вложения
lab16.rar
(128.99 Кб) Скачиваний: 151
Char0Day
Горожанин
 
Сообщения: 500
Зарегистрирован: Пн июл 24, 2006 1:34 pm
Откуда: г. Находка

Сообщение Char0Day » Вс ноя 04, 2007 7:02 pm

Далее представлена
Вторая часть лабораторных работ.

Направление данных работ- освоение программирования пользовательского интерфейса.

Среди работ заслуживают внимания

Лабораторная №6 "Скатывающийся по ступеням шар" (пытался изобразить, что шар падает со ступеней с ускорением свободного падения и поэтому скорость его с каждой ступенью возрастает. Удар сделал абсолютно неупругим (то есть шар не подпрыгивает на ступени при падении не нее).

и Лабораторная №9 "Калькулятор" (вроде чего-то там я извращался)

Остальные задания смотрите внутри архивов.



Исходный код (Delphi 7):
Вложения
labs2-05-09.rar
(173.52 Кб) Скачиваний: 55
labs2-01-04.rar
(395.79 Кб) Скачиваний: 33
Char0Day
Горожанин
 
Сообщения: 500
Зарегистрирован: Пн июл 24, 2006 1:34 pm
Откуда: г. Находка

Сообщение Aroch » Вс ноя 04, 2007 8:31 pm

повезло мне когда учился, Delphi не проходили -) правда я с ним успел познакомится еще в школе и годика полтора позаниматься "компоненто шлепательством" ))
Boku wa naze kaze no you ni kumo no you ni ano sora e to ukabu hane ga nai naze... [Trinity Blood]
Аватара пользователя
Aroch
Смотритель
 
Сообщения: 177
Зарегистрирован: Ср сен 19, 2007 8:57 am
Откуда: Nakhodka

Сообщение Char0Day » Вс ноя 04, 2007 10:06 pm

Aroch,
А я Delphi "на коленке" осваивал :)
Это единственное, что я на нем сделал.
В политене дистанционникам такое преподают.
Хотел на Builder сварганить, но препод сказал, что желательно на Delphi. Пришлось непривычный для меня синтаксис изучать. Чего только стОит ":=" оператор присваивания. Вечно я забывал двоеточие. :)

Я бы в командной разработке какой-нибудь хотел бы поучаствовать. У меня ООП, наверное хромает (если сравнивать с профессиональными Опенсорсными разработками)
Так как начинал с С (в среде Borland C++ 3.11), потом C++ Builder, и в то же время (только не кидаться тухлыми помидорами :lol:) VB6, потом метался: вершки Java (сервлеты и JSP), C# - неоконченный проект (SNMP монитор, завяз на ловле trap от киски.).
Реальный проект, который и сейчас работает, делал на VB6 в 2003, ужасно торопясь. На написание документации уходило много сил, и на обеспечение удобства интерфейса. Когда написал - ужаснулся.
Это просто несопровождаемый код. Каждое изменение в коде, вызванное исправить ошибки, вызывало несколько новых.
Куча одинаковых кусков кода в разных местах программы, которые я не удосужился запихнуть хотя бы в функции, не говоря о классах, которых там нет, как таковых. :-). Естественно использовал копи-пэйст при разработке и все это мне аукнулось, все то, о чем предупреждают новичков - испытал на собственной шкуре :-).
Так, в текущей версии 1.6 есть одна нехорошая ошибка, которую я уже не буду исправлять, так как на дальнейшую доработку нет времени.
Если еще придется писать что-нить нетривиальное, подойду к проектированию намного более ответственно.
Char0Day
Горожанин
 
Сообщения: 500
Зарегистрирован: Пн июл 24, 2006 1:34 pm
Откуда: г. Находка

Сообщение Aroch » Пн ноя 05, 2007 9:30 am

:= еще ладно самое дебильное потом на с++ снова переходить когда в условиях вместо == пишешь = и по пол часа ищешь почему же все работает, но не так как нужно.
По ООП я бы посоветовал прочитать Буча.
з.ы. свою первую программку на Delphi я тоже писал подобным способом -) самое ужасное что это был футбол и пришлось писать "кучу" (в те времена это была для меня куча) почти одинакового кода для каждого футболиста на поле, благо у меня был мини футбол и их было всего 5-6 в команде (уже не помню) -)
Boku wa naze kaze no you ni kumo no you ni ano sora e to ukabu hane ga nai naze... [Trinity Blood]
Аватара пользователя
Aroch
Смотритель
 
Сообщения: 177
Зарегистрирован: Ср сен 19, 2007 8:57 am
Откуда: Nakhodka

Re: Лабораторные программирование. Задания и исходники(Delphi 7)

Сообщение Smartik » Пн мар 28, 2016 3:01 am

:applause:
Smartik
Приезжий
 
Сообщения: 28
Зарегистрирован: Чт мар 24, 2016 4:12 am

Re: Лабораторные программирование. Задания и исходники(Delphi 7)

Сообщение jeyahided » Пн апр 09, 2018 5:23 am

http://casinoeldorado.mobi казино эльдорадо бездепозитный бесплатная регистрация
jeyahided
Приезжий
 
Сообщения: 10
Зарегистрирован: Пн апр 09, 2018 5:17 am

Пред.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron