Может найдется у кого время или желание просмотреть описание проекта? Интересно, как вы бы организовали все это дело. Какие методы реализации пользовательского интерфейса и все, что вам взбредет в голову. Но главное - интерфейс, exampl'ом MDI от Iczelion'а не обойтись. Копаю давно, не наезжайте со словами 'думай сам'. В приложении подробный лист и exel'евская таблица для наглядности. Вполне реальная, коей сейчас пользуются. Кратко описывать не буду, получается или не понятно или длинно. В task важна только графа exterior. Таблица есть готовая, thank Jupiter. Язык - masm. Цель - редактор расписания занятий.
архив не лепится. Извините, что текстом. Код (Text): ; ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ; ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ; ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ; ~~~~~~~~~~ ; target: ; ~~~~~~~~~~ Основное назначение - позволить удобно редактировать расписание занятий. ; ~~~~~~~~~~~~~~~~~~~~~~ ; Требования к Activity Table: ; main среда должна исключать диспорядок уже одним фактом своего существования. не допускать ошибок при составлении таблиц. компенсировать неаккуратность пользователя, существующую и возможную. хотя бы выглядеть как серьезный продукт. Никаких больших кнопок в стиле delphiстов и т.п. Не надоедать простотой интерфейса. ; exterior таблица, рабочая область. отдельный проект на каждую неделю. Воскресные дни отображаются для полноты картины. левый заголовок - преподаватели. отображаются фамилия/инициалы, также информация о часах проведенных/оставшихся. верхний заголовок - в две строки. верхняя, день недели и дата. дата, кратко строкой (18 янв, 13 апр). нижняя, номера пар. предполагается шесть. Настраивать не нужно. столбец таблицы, можно выделить рамкой. отмечается один одним кликом. несколько, для вывода общей о них информации, как-то еще. выделение одного снимается пользователем. выделение ячеек в произвольных сочетаниях. на каждого преподавателя четыре строки. первая для группы, вторая для второй группы, если нужна, четвертая для аудитории. третья дополнительная, кабинет второй ставить хоть чоли. панель с элементами. отображаются кабинеты и группы. номера короткие, максимум три символа для групп и два для аудиторий. в одной панели в двух колонках. лучше в разных, гибкость при выделении столбца затеняются назначенные группы и аудитории. выполнены как listbox. при выделении, к примеру, группы, в панели кабинетов выделение не снимается, а меняет цвет как неактивное. строка состояния. показывает координаты. какие-то активные режимы. и что-то еще. строка tool bar. наинужные из функций, наметятся позже. настройка не планируется, хотя убирать лишние расставляя флаги можно и сделать. строка меню. все возможные функции или все функциональные(ирующие) возможности. ; add строка вкладок. в стиле exelевских вкладок, осуществляет: навигация между проектами, нужна бы она была. переключение между таблицами и дополнительной информацией. окна вывода и настройки дополнительной информации. заменяют окно таблицы. количество часов для групп, преподавателей, что-то еще и т.п. окна, кроме таблицы обязаны перетаскиваться и прилипать к любому месту уже на раннем этапе. дабы не переделывать многое, все равно делать. как вариант - окна закреплены на позициях, можно изменять размер, не более того. элементы, выделенные в панели элементов вставляются в нужные места мышкой или клавиатурой. как дополнение - контекстное меню каждой ячейки: insert - кабинет/группа. кроме того, возможность руками вносить значения. ; to make improvement архив расписаний: хранение всего, что должно храниться. (желательно, но неосуществимо?, не привязывать архивы к программе уникальным форматом). как дополнение- подгрузка, по мере надобности, прошлых таблиц, дабы можно было подглядывать. зачем- пока не знаю. (для дальнейшего, псевдобесконечное мотание влево-право с синхронной подгрузкой. Просто красиво, оригинально, но сложно пока). Как вариант - подгрузка по нажатию кноп-стрелок лево/право. подсветка ошибок: оставить идею ненавязчивого изменения цвета. Никаких сообщений с заголовком 'error'. возможность просмотра проекта расписания и вывода ошибок в отдельном окне. в стиле 'compile', с навигацией по проекту. как вариант - секция в строке состояния или подобном месте, где кратко описана последняя ошибка с указанием координат. список возможных ошибок при составлении: повторение аудитории повторение группы размер группы не сходится с человекоемкостью аудитории с клавиатуры внесено некорректное значение. подсветка дней: выставлять периодичные выходные. т.е. такой-то преподаватель имеет выходные по четвергам и/или каждый понедельник двенадцатого числа, подсветить соответствующие дни. ни в коем разе не сделать выходные в свойствах преподавателя. (специфика заведения) высвечивание какого-либо дня, для которого не требуется составление расписания. базы элементов (групп и аудиторий, и преподавателей): настраиваются, сохраняются. как дальнейшее, для повышения гибкости, - смена/загрузка разных баз. remark: хранить как базы данных только если это действительно нужно. Пока же формат свой. для каждого элемента, совокупности элементов, настраиваются свойства. для аудиторий: емкость. корпус. стратегический или нет. для студенческих групп: размер, количество студентов. деление групп на подгруппы с указанием индекса в таблице. как вариант - буквенный настраиваемый индекс (типа м/ж, L/R) слияние групп учтено в таблице дополнительной строкой. для преподавателей: время возможной работы. (преподавание для многих не основная работа) профиль не важен для гибкости. (и так все подряд читают все подряд) учет: количество часов: сколько отчитано/сколько осталось для преподавателя, для групп. пока - полная настройка руками в начале семестра. свободные аудитории для каждой пары. Не делить пары на часы (не встречается, специфика) стратегические аудитории. Стратегической считается узко специализированная аудитория (много мониторов, к примеру). Выводить по требованию текущую хронификацию их использования. указывать кем и когда используются. как дополнение - количество переходов групп между корпусами. возможно, анализ всего расписания на основе критического значения. Критическое значение вшить жестко из своих соображений, из вредности. (много бегают). output: конвертация в преподавательские/студенческие расписания. Распечатка. файл проекта, кроме сохранения возможность добавить к архиву. экспортировать элементную базу. формат выходных расписаний: .. ; ~~~~~~~~~~~~~~~~~~~~~~ ; Альтернатива's: Exel со своими формулами и макросами: возможности: разделение таблицы на три части, верхний и левый заголовки и, собственно, таблица. подсветка ошибок. подсветка отдельных дней. как то: выставить периодичные выходные дни преподавателям. (недостаток - руками) выставить глобальные выходные. .. формулы. Сумма часов, автовставка из соседних листов общей информации (f.s. выставляется количество оставшихся часов из таблицы часов). пересчет проекта в студенческое расписание автоматический. недостатки: приходится копировать/вставлять элементы при работе. Есть готовый набор групп и т.п., но редактировать руками. нудное хранение архивов. Экспресс-расписание: возможности: может много. куча возможностей, настроек и т.п. недостатки: интерфейс. уже фактом существования. неудобный, надоедливый и не наш. на каждом шагу сообщения о неправильном шаге. Вплоть до 'вы ставите на выходной день. продолжить?' заточена под автора. заявлено, что заточена под все, школа, колледжи и т.п. Значит, не подходит никуда. коммерческая, доступно только demo. хотя не совсем недостаток. Расписание ПРО терпел две минуты. впечатление плохое. коммерческая. на delphi сделана качественно и со старанием итог: из шести рассмотренных программ (четыре ранее) под наше "учебное заведение" не подошла ни одна. отбросить интерфейс, личные предпочтения,- все равно не подойдет в силу тонкостей организации. опираться придется только на exelевские листы. от альтернативных программ полезное только недостатки.
Хорошо, что подправили - не догадался и торопился. Так хотелось перед созданием каркаса интерфейса посоветоваться с опытными людьми. Свои мысли есть, но все же. До сих пор не перехотелось.