Огранизация меню в формах
Автор: admin | 20 Июнь 2008 – 21:57 -Огранизация меню в формах
Важными атрибутами интерфейса являются меню и инструментальные панели с кнопками. Рассмотрим, как организуются эти элементы интерфейса в формах. Меню и панели с кнопками можно создавать как вручную в режиме проектирования, так и программно.
Несколько слов о терминологии. Когда мы говорим о меню, то имеем в виду некоторую структуру, организованную в виде дерева. Меню состоит из элементов меню, часто называемых пунктами меню. Каждый пункт – элемент меню – может быть либо меню (подменю), состоящим из пунктов, либо быть конечным элементом меню – командой, при выборе которой выполняются определенные действия. Главным меню называется строка, содержащая элементы меню верхнего уровня и обычно появляющаяся в вершине окна приложения – в нашем случае, в вершине формы. Как правило, главное меню всегда видимо, и только оно видимо всегда. Можно из главного меню выбрать некоторый элемент, и, если он не задает команду, под ним появятся пункты меню, заданные этим элементом – говорят, что появляется выпадающее меню. Поскольку каждый из пунктов выпадающего меню может быть тоже меню, то при выборе этого пункта соответствующее выпадающее меню появляется слева или справа от него.
Кроме структуры, заданной главным меню, в форме и в элементах управления разрешается организовывать контекстные меню, появляющиеся (всплывающие) при нажатии правой кнопки мыши. Далее »
Tags: ColorDialog, ContextMenu, Controls, DialogResult, index, Menu, Text, ToolBar, void
Находится в Учебник | No Comments »
Организация интерфейса (II)
Автор: admin | 20 Июнь 2008 – 21:56 -Организация интерфейса (II)
Обработчики событий устроены достаточно просто – они вызывают соответствующий метод, передавая ему нужные аргументы в нужном порядке. Рассмотрим метод, переносящий множество отобранных пользователем элементов из одного списка в другой: Далее »
Tags: AddInheritedForm, Debug, dll, DoubleClick, InterfacesAndDrawing, Picker, string, Studio
Находится в Учебник | No Comments »
Организация интерфейса
Автор: admin | 20 Июнь 2008 – 21:54 -Организация интерфейса
Практически все проекты, построенные в наших лекциях, были консольными приложениями. В реальной жизни консольные проекты – это большая редкость. Причина, по которой из 12 возможных типов проектов мы выбирали наименее используемый, понятна. Нашей целью являлось изучение свойств языка, классов библиотеки FCL, для этих целей консольный проект вполне подходит, позволяя избегать введения не относящихся к сути дела деталей. Теперь цель достигнута – основные средства языка C# рассмотрены, учебный курс завершается. Остались важные темы, требующие более подробного рассмотрения, такие, как, например, работа с атрибутами, создание собственных атрибутов, класс Reflection, работа с файлами и базами данных; но все это предмет будущего курса. Тем не менее, нельзя окончить этот курс, не посвятив две последние лекции Windows-приложениям. Мне бы хотелось, чтобы активные слушатели (читатели) все консольные проекты переделали в Windows-проекты, построив подходящий для них интерфейс.
Первое знакомство с Windows-проектами состоялось в лекции 2, я настоятельно рекомендую перечитать ее, прежде чем продолжить чтение данной лекции. Вкратце напомню, как создается и выполняется Windows-проект. По умолчанию он содержит класс Form1 – наследника класса Form. Этот класс содержит точку входа в проект – процедуру Main, вызывающую статический метод Run класса Application, который создает объект класса Form1 и открывает форму – видимый образ объекта – для интерактивной работы пользователя. Открываемая форма содержит пользовательский интерфейс – окошки, кнопки, списки, другие элементы управления, меню . Все эти элементы способны реагировать на события, возникающие при выполнении пользователем каких-либо действий – нажатии кнопок, ввода текста, выбора пунктов меню. Далее »
Tags: AddRange, BeginUpdate, DataBinding, ListArray, MultiColumn, RemoveAt, SelectedIndexCollection, SelectedObjectCollection, SelectionMode, Sorted
Находится в Учебник | No Comments »
Обработка исключительных ситуаций
Автор: admin | 20 Июнь 2008 – 21:53 -Обработка исключительных ситуаций
Какой бы надежный код ни был написан, сколь бы тщательной ни была отладка, в версии, переданной в эксплуатацию и на сопровождение, при запусках будут встречаться нарушения спецификаций. Причиной этого являются выше упомянутые законы программотехники. В системе остается последняя ошибка, находятся пользователи, не знающие спецификаций, и если спецификацию можно нарушить, то это событие когда-нибудь да произойдет. В таких исключительных ситуациях продолжение выполнения программы либо становится невозможным (попытка выполнить неразрешенную операцию деления на ноль, попытки записи в защищенную область памяти, попытка открытия несуществующего файла, попытка получить несуществующую запись базы данных), либо в возникшей ситуации применение алгоритма приведет к ошибочным результатам.
Что делать при возникновении исключительной ситуации? Конечно, всегда есть стандартный способ – сообщить о возникшей ошибке и прервать выполнение программы. Понятно, что это приемлемо лишь для безобидных приложений; даже для компьютерных игр этот способ не годится, что уж говорить о критически важных приложениях!
В языках программирования для обработки исключительных ситуаций предлагались самые разные подходы. Далее »
Tags: catch, finally, goto, Rescue, Retry, return, try
Находится в Новости | No Comments »
Отладка
Автор: admin | 20 Июнь 2008 – 21:52 -Отладка
Что должно делать для создания корректного и устойчивого программного продукта? Как минимум, необходимо:
- создать надежный код, корректность которого предусматривается с самого начала;
- отладить этот код;
- предусмотреть в нем обработку исключительных ситуаций.
Создание надежного кода
Большинство вопросов, затрагиваемых в этой лекции, в том числе и проблемы создания надежного кода, заслуживают отдельного и глубокого рассмотрения. К сожалению, придется ограничиться лишь высказыванием ряда тезисов.
Для повышения надежности нужно уменьшить сложность системы, и главное в этом процессе – это повторное использование. В идеале большая часть системы должна быть собрана из уже готовых компонентов. Объектная технология проектирования вносит свой вклад в повышение надежности кода. Наследование и универсализация позволяют, не изменяя уже существующие классы, создать новые классы, новые типы данных, придающие проектируемой системе новые свойства при минимальных добавлениях нового кода. Статический контроль типов позволяет выявить многие ошибки еще на этапе компиляции. Динамическое связывание и полиморфизм позволяют автоматически включать объекты классов-потомков в уже существующие схемы работы – методы родителя могут вызывать методы потомков, ничего не зная о появлении этих новых потомков. Автоматическая сборка мусора позволяет снять с разработчика обязанности управления освобождением памяти и предотвратить появление крайне неприятных и опасных ошибок, связанных с некорректным удалением объектов.
Крайне важную роль в создании надежного кода играют спецификации методов класса, класса в целом, системы классов. Спецификации являются частью документации, встроенной в проект, и вообще важной его частью. Их существование облегчает не только создание корректного кода, соответствующего спецификации, но и создание системы тестов, проверяющих корректность кода. Нужно сказать, что существуют специальные инструментальные средства, поддерживающие автоматическое создание тестов на основе спецификаций. Незаменима роль спецификаций на этапе сопровождения и повторного использования компонентов. Невозможно повторно использовать компонент, если у него нет ясной и полной спецификации. Далее »
Tags: COMPLEX, ComplexMethod, DebugPrint, DefaultTraceListener, InMethod, PrintExit, PrintObject, PubMethod, string, TextWriter, ToString, TraceListenerCollection, virtual
Находится в Учебник | No Comments »
