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