![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
HoOope |
![]() ![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 5 Пол: Женский Реальное имя: ОльКа Репутация: ![]() ![]() ![]() |
Люди-человеки, помогите будной студентки разобраться в проге.
![]() ![]() ![]() Вот задание: 1) разработать интерфейсное меню, состоящее из кнопок вида ромба и квадрата 2)кнопки должны размещаться на панели и иметь объемный вид 3) текущей является кнопка серого цвета, неактивная - зеленая 4) перемещение по кнопкам производиться с помощью клавиш навигации, выбор кнопки-энтер 5) по нажатию каждой кнопки создается эффект вогнутости и выполняется действия: на дополнительную панель внизу экрана вывести задание на лабу; развернуть панель и вернуть ее в исходное состояние; увеличить объемность панели... А вот то, что я намучала: uses crt,graph; Очень жду и надеюсь на Вашу помощь ![]() ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата А как можно проще написать? С ромбом можно как-то легче поступить? Значит, смотри...Начнем с того, что у тебя невнятно описана цепочка наследования. Давай посмотрим, что у тебя есть: у тебя есть прямоугольная панель, у тебя есть прямоугольная кнопка и ромбовидная кнопка. Есть ли что-то общее между всеми этими сущностями? Есть... Все они однозначно идентифицируются прямоугольником, в котором находятся. Причем как для отрисовки прямоугольной, так и для отрисовки ромбовидной кнопки нужны 4 точки. В связи с чем объекты предлагаю унаследовать так: typeПопробуй посмотреть на то, что я написал, и подумать, не слишком ли это сложно для тебя. Естественно, я набросал программу, и этот кусок - именно оттуда, эта иерархия работает, причем работает прекрасно. Основная программа выглядит вот так: beginКак видишь, все очень даже компактно, и вполне в рамках ООП... Так что выбор - за тобой, перекраивать то решение, которое у тебя есть, или написать правильно работающую изначально программу. Цитата Крайне не рекомендую использовать FloodFill, есть же процедура FillPoly для рисования закрашенных прямоугольников, вот ей и пользуйтесь. Я бы не был так категоричен. Для небольших размеров кнопок вполне подойдет и FloodFill (она медлительна при заливке больших поверхностей), а вот при попытке отладить программу в FPC я столкнулся с некорректной работой FillPoly на этом компиляторе, в связи с чем пришлось использовать условную компиляцию при отладке на двух компиляторах, чтоб не изменять программу туда-сюда... Так что не надо заниматься предварительной оптимизацией. "Premature optimization is the root of all evil" (С) Д. Кнут, вообще-то. Сначала надо заставить программу работать в принципе, а уж потом - считать такты и микросекунды, что так любят делать некоторые ![]() Добавлено через 2 мин. P.S. Цитата только это как-то по-индийски Я бы попросил не касаться понятий "индусского кода". Индусы пишут ГОРАЗДО более правильно, чем те, кто ХОЧЕТ представить их слабыми программистами. И у них надо еще поучиться программировать кое-кому. |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 11:42 |