![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Skif_04 |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Народ, помогите плиз закончить задачу на ООП...
Вот то, что я набросал
Сюда надо еще добавить возможность изменения размерв обьектов и прога должна продимонстрировать процесс надувания воздушного шарика... |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Сюда надо еще добавить возможность изменения размерв обьектов Так в чем проблема? Один из вариантов - добавляй в иерархию после TGraphObject еще тип TResizable (не все объекты могут менять размер, скажем точка - она и есть точка, а вот все, что будет наследоваться от TResizable - сможет менять размер), и определяй для него методы, меняющие размер объекта и поля, этот размер хранящие...Цитата и прога должна продимонстрировать процесс надувания воздушного шарика... Собственно, какого типа должен быть воздушный шарик, TPoint или TRectangle? ![]() |
Skif_04 |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Так в чем проблема? Один из вариантов - добавляй в иерархию после TGraphObject еще тип TResizable (не все объекты могут менять размер, скажем точка - она и есть точка, а вот все, что будет наследоваться от TResizable - сможет менять размер), и определяй для него методы, меняющие размер объекта и поля, этот размер хранящие... Так это получается, что Прямоугольник и Круг мне надо будет теерь наследовать от TResizable, а TGraphObject исключительно для точки?(если не трудно хотелось бы увидеть пример) Собственно, какого типа должен быть воздушный шарик, TPoint или TRectangle? ![]() Воздушный шар устроит любого "округлого" типа ![]() |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Ну, вот я добавил кое-что:
![]() Тестируй, должно работать... Единственное, что - добавь там задержку в основном цикле, и тогда уж увеличивай коэффициент, передаваемый factorSize, иначе ты не успеешь моргнуть, как программа вылетит из-за переполнения типа Integer, у тебя ж многие тысячи итераций в секунду происходят. То же самое касается и увеличения Sphere, тоже внутри цикла надо добавить задержку (Delay какой-нибудь, подбери, чтоб было видно увеличение размера, и можно было отреагировать нажатием клавиши и остановить этот процесс), иначе будет вылет по той же причине... Но твою программу надо еще дорабатывать, ты делаешь довольно много лишнего. К примеру, у тебя в каждом типе в иерархии есть X, Y, Color, зачем ты делаешь в каждом конструкторе присваивание им значений? Возложи это на конструктор базового класса... Графика у тебя не связана никак с объектами, это тоже не очень хорошо. Мог бы сделать объект, скажем, TGraphix, который бы создавался при старте программы, и при его создании инициализировался бы графический режим, а при удалении - закрывался... |
Skif_04 |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Отлично! Спасибо огромное!!!!!!!! В моем исходнике было дествительно много...но ведь нет предела совершенству...да, можно было бы ее конечно улучшить, но банально нет времени...в среду надо сдать ее+курсач...поэтому тут все в режиме "работает и слава Богу"... единственный вопрос на последок, как можно закрасить рисуемую окружность...я так понимаю, что процедуры типа FloodFill тут не прокатят?
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Зачем же FloodFill, если можно рисовать уже закрашенную окружность:
procedure tcircle.Paint; (я всегда при затирании объекта делаю это "с запасом", чтоб лишнего ничего не оставалось на экране) |
Skif_04 |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Прекрасно работает. Огромнейшое спасибо за помощь!!!
|
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 19:10 |