Рассылка закрыта
При закрытии подписчики были переданы в рассылку "БЛОГика: полезные советы" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Изучаем Windows Forms и таблицы.
|
||
Практическая работа с Visual Studio.Net и Microsoft Office |
Оглавление
➲Краткие сведения об этой рассылке |
➲Практическая работа с Visual Studio.Net |
➲Практическая работа с Microsoft Office |
➲Web-технология |
➲Создание реальных проектов |
➲Вопросы и ответы |
Краткие сведения об этой рассылке |
Статистика | |
Номер выпуска рассылки | 4 |
Дата выпуска рассылки | 2006-03-06 |
Время выпуска рассылки | 02:05:41 |
Возраст рассылки в днях | 30 |
Количество подписчиков | 693 |
Динамика подписчиков за вчера | +30 |
Динамика подписчиков за неделю | +618 |
Мои ресурсы
Дружественные ресурсы
Для обсуждения программирования и связи со мною создан лист обсуждений Обсуждение VS.Net 2003, MSOffice 2003. Подписывайтесь на него и задавайте интересующие вас вопросы. Так же можно вносить предложение по следующей теме рассылки Практическая работа с Visual Studio.Net и Microsoft Office. И, конечно же, просто обсуждать программирование в средах Visual Studio.Net и Microsoft Office.
Чтобы подписаться на интересующую вас рассылку воспользуйтесь формой быстрой подписки находящейся в начале этого документа. Достаточно набрать свой e-mail адрес, выбрать заинтересовавшие вас темы галочками и нажать кнопку ok. Потом вы должны подключиться к сети, если находитесь вне её. Далее действуйте по обстоятельствам.
Практическая работа с Visual Studio.Net |
Формы и приложения.
Любое интерактивное приложение должно иметь как минимум одно окно, через которое предоставляется пользовательский интерфейс. В разных системах существуют различные способы добиться желаемого, к примеру, в Microsoft Access , кроме встроенных элементов можно добавлять ActiveX составляющие, а в Microsoft Word плюс к этому существует возможность использовать web-формы. Visual Studio.NET ничуть не уступает этим системам, а напротив, даже превосходит их. Как известно, эта среда разработки содержит библиотеки Net Framework, а уже в них появляется возможность использовать классы, находящиеся под общим пространством имён Windows Forms. Все такие высокоуровневые приложения Windows предоставлены объектами, чей тип извлекается из класса Form. Для них, кстати, существуют специальные мастера создания на каждый язык по одной штуке. Как с любым пользовательским интерфейсом, класс Form наследуется от класса Control. Подобное наследование добавляет признаки окон, такие, как управление границами окон и взаимодействие с панелью задач Windows. Все приложения Windows Forms имеют как минимум одни класс, извлечённый из Form. Если вы не поняли, о чём я говорю, то приведу пример ещё нескольких видов приложений: Console Application, MFC Application (только для Visual C++), Windows Control Library, Windows Service (те самые службы работающие в фоновом режиме) и так далее. Для создания же проекта с Windows Form вам потребуется мастер Windows Application. Тип приложения на начальной стадии разработки определяется мастером создания проекта, однако если вы достаточно продвинуты, то сможете превратить любой проект в нужный вам тип, хотя это будет иметь мало смысла, по причине лишней траты времени на замену метаданных, создания файлов и многого другого.
Чтобы лучше понять механизм наследования форм, приведу следующий пример для графического элемента RichTextBox:
- System.Object
- System.MarshalByRefObject
- System.ComponentModel.Component
- System.Windows.Forms.Control
- System.Windows.Forms.TextBoxBase
- System.Windows.Forms.RichTextBox
Вам нужно, прежде всего, понять и запомнить, что в проектах Windows Forms существует зависимость между формами и элементами, содержащимися в них, а так же зависимость между самими формами. Пользовательский интерфейс будет стартовать с одной формы окна называемой главной, а другие наследованные могут вызываться потом, по мере необходимости.
Структура приложения.
Все приложения Windows Forms имеют, что-либо общее, ни смотря, ни на что, они или создаются в Visual Studio.NET или пишутся вручную.
- Все они имеют как минимум одну форму, главное окно приложения.
- Все они нуждаются в отображении, когда запускается форма.
- Они должны правильно завершиться в подходящее время.
Загрузка и закрытие.
Все программы где-нибудь, да начинаются, и приложения .NET имеют особый метод, который вызывается, когда приложение запущено. Этот метод ответственен за создание любого приложения Windows и необходим для предустановок. В Visual C#.NET и Visual Basic.NET эта точка вхождения в программу всегда вызывается статичным (static) методом Main. По умолчанию мастер Windows Application в Visual Studio всегда закладывает эту функцию в форму нового проекта.
Á
Visual C# NET |
Данный код вы увидите, создав проект с помощью мастера Windows Application и войдя в код формы.
Хотя Visual Studio делает Main видимой если в используете Visual С# (Си Шарп), однако при разработке в Visual Basic эта функция будет сокрыта. В проектах Visual Basic код для Main не отображается в коде формы, ни в списках Class View или в Object Browser . Что и не удивительно, раз функции в редактируемом коде не существует. Однако, рассматривая составленное (откомпилированное) приложение Windows Forms используя ~ILDASM, .NET разборщик (дизассембер), показывает, что сокрытый public метод названный Main присутствует в форме приложения.
L |
А вот примеры Main для других языков Visual Studio.Net.
Á
Visual Java NET |
Á
Visual C++ NET |
Вы, возможно, подумали, что Visual Basic обделён по сравнению с другими языками, но это не так. Если вам всё-таки нужна эта функция или процедура в нём, то вставьте следующий код в конец класса формы, сразу перед End Class.
Á
Visual Basic NET |
Если ваше приложение нуждается в параметрах командной строки, вы можете изменить Main, или если ваш код Visual Basic, то добавить вашу собственную процедуру, так как иногда это предпочтительнее, чем полагаться на автодобавление компилятором. Используйте в параметрах тип string. Конкретная реализация зависит от языка программирования. Вы так же можете передать массив строк по одному, на каждый аргумент, или возвратить значение целого типа при выходе из кода. Вот пара примеров:
Á
Visual C# NET |
Á
Visual Basic NET |
ë |
Функция Main в большинстве приложений имеет наипростейший вид, так как наиболее интересные предустановки происходят внутри форм. Всё, что обычно случается в Main, это создание образца формы (Form1) и передача управления в класс приложения Application библиотек framework, который управляет исполнением до конца жизни приложения. Приложение работает, пока класс Application не решает, что время работы истекло. По умолчанию, это происходит, когда форма закрывается.
Но не стоит думать, что подобное поведение характерно только для этого класса. Вы можете запустить любое другое диалоговое окно, и получите такое же поведение. К примеру, добавьте перед закрытием приложения сообщение о том, что окно сейчас откроется, и после него, что оно закроется.
Á
Visual Basic NET |
Вот видите, пока не закроется окно сообщений, нельзя открыть другое окно формы. Так было в начале, и так дело обстояло в конце. То есть мы на примере убедились, что так ведёт себя последовательный код разных форм. Одно не запустится, пока другое не закроется. В будущем я познакомлю вас с наследованием и параллельным запуском форм.
Практическая работа с Microsoft Office |
Информация для полных новичков Access.
Больше всего в программировании под Microsoft Office нуждается релятивная база данных Access. То есть, для работы с другими программными продуктами в большинстве случаев хватает пользовательских навыков. Но для Access это будет не приемлемо, ведь без программирования, там можно составлять лишь простейшие таблицы, имитирующие последовательную структуру данных, одним словом списки. В связи с этим, я настоятельно рекомендую прочесть всю русскоязычную справку. Англоязычные же документы касаются в основном описания программирования под Visual Basic 6.3 и справочную систему по различным вспомогательным библиотекам, таких как Access, DAO или ADO. Вот их то я и буду чаще всего обсуждать, так как большинству из вас будет не интересно слушать пространные рассуждения о том, как создавать таблицы не программными методами, когда всё это и многое другое написано по-русски и с приятными иллюстрациями в справке. Так же иногда я буду касаться программирования других в других программных продуктах Microsoft Office, но тоже преимущественно программирования. А теперь откройте справку Microsoft Office 2003 (2002) и прочтите все разделы, написанные русским языком, их будет отличать от английских - русское название.
Окно базы данных Access.
Для работы с объектами базы данных очень удобно использовать окно базы данных. Оно позволяет обращаться к объектам, не используя программные методы. То есть обычному пользователю не нужно мучаться, пытаясь извлечь нужные ему данные. Такой способ доступа к содержащейся в базе информации очень удобен.
¨ |
¨ |
Теперь создайте базу данных с любым именем, в любой папке, и вообще любым понравившимся вам способом. Если база данных всё ещё закрыта, откройте её.
ë |
В окне базы данных выберите вкладку Таблицы . Далее в панели инструментов окна базы данных нажмите кнопку создать. Привыкайте создавать таблицы в режиме конструктора, так как этот способ даёт вам полный контроль над свойствами таблицы. Напоминаю, что ваши действия в конечном итоге приведу к созданию объекта базы данных. После того, как вы нажмёте кнопку Ok , перед вами появится окно таблицы.
¨ |
В режиме конструктора вы сможете открывать такие наследованные окна как:
-
¨ -
¨
Плюс к этому вам стал доступен графический интерфейс самого окна таблицы, который поделён на две части, так называемую данных решётку (control Grid), для создания новых полей и в нижней части свойства каждого из них в отдельности.
Создайте одно поле с типом счётчика. Не важно если вы не знаете, как это сделать, в конечном итоге Access сам поможет вам в этом при записи таблицы. Назовите ключевое поле Код . Создайте другие поля, со всевозможными типами. Теперь сохраняйтесь и выходите из режима конструктора. Это можно сделать и в обратном порядке, то есть приказать окну таблицы выйти, а оно предложит сохраниться и ввести имя.
В окне базе данных выберите вкладку Формы. Теперь вы получаете возможность выбирать объекты базы данных с типом форма и создайте с помощью мастера форм, форму из созданной нами таблицы. Я думаю, у вас не возникнет с этим затруднений без моих доскональных объяснений. Запомните, что форма - это, прежде всего объект, а не то, что вы видите на экране, так как нужно чётко понимать, с чем вы имеете дело, когда программируете. К примеру, вы можете выполнить любую команду , которую можно выбрать, используя строку меню Access, значит, их можно отнести к командам Access, или параметры в диалоговом окне параметры, являются, прежде всего, параметрами, а не как ни объектами или командами. То есть вы должны условно разделить методы воздействия на базу данных в группы, и пользоваться приобретёнными знаниями, когда начнёте программировать. Для чего это нужно? Прежде всего, чтобы по прошествии месяцев бездействия, всё ещё помнить, как программировать в Access.
Существуют разные типы программистов. В ранних выпусках я условно делил их на практиков и теоретиков. Но это не даёт общей картины эффективности тех или иных. С моей точки зрения программировать тоже можно по-разному. Одни это делают стихийно, целиком полагаясь на свой разум, способность мгновенно извлекать нужную им информацию. Вот только людей имеющих для этого необходимую структуру мозга единицы из тысяч. То есть не каждый человек способен автоматически, без участия осмысленного сознания упорядочивать свои знания. А остальным стихийным программистам остаётся только посочувствовать, так как на решение каждой задачи они будут тратить огромное количество времени, которое будет измеряться не минутами и часами, а днями и месяцами. Встречаются и особо запущенные случаи, где счёт может идти на года. В противовес им существуют люди, сознательно тренирующие свою наблюдательность и память. Вот вы читаете этот текст, но много ли из него запомнили? Тогда скажите, как называется функция для извлечения параметров командной строки в Visual Studio.Net. Не помните? А как называется класс, к которому она принадлежит? Читая про функции Main, запомнили ли вы, как они записываются на каждом конкретном языке? В чём грамматическое отличие между определениями функций на различных языках. Если на все вопросы вы ответили отрицательно, признав тем самым, что не может ничего вспомнить, то значит, читали текст не задумываясь, как любой типичный стихийник. Не ищите себе оправдание, дескать, зачем мне забивать голову всякой ерундой, якобы, когда придёт время, то можно просто посмотреть ответ в MSDN . Вот в этом всё и дело, не зная, хотя бы примерно, что ищешь, этого не найдёшь. А, не зная, что какая-либо возможность существует, вы просто не сможете её использовать.
Зачем я пишу всё это, вместо того, чтобы зарядить в эту рубрику какой-нибудь огромный код , чтобы все видели, что это рассылка учит его написанию? Тут дело, прежде всего в том, что, сколько бы кода я не вставил в рассылку, написав сам или найдя где-нибудь, это не будет иметь никакого значения. Почему? Да по тому, что даже если вы всё поймёте, то со временем это все равно забудется. Вот, к примеру, я из тех людей, которые не понимают код, лишь взглянув на него. То есть, у меня нет врождённой способности к самоупорядочиванию сознанием знаний. Конечно, можно попытаться взять код не умением, а упорством, но время все равно расставит всё по своим местам. Может случиться даже так, что вы довольно успешно запрограммировав базу данных пару месяцев назад, в последствии будете удивляться, как же вам такое удалось, ведь сейчас в вашем сознании огромное чёрное пятно не позволяющее получить точную последовательность действий для нового свершения. В итоге получается следующий вывод, человек, который пользуется только мгновенно извлекаемыми знаниями, в конечном итоге может лишиться их всех. Как известно у взрослого с годами мозг начинает работать не лучше, а напротив, намного хуже. Чем не повод, чтобы попытаться упорядочить свои неосознанные знания , пока не стало слишком поздно.
Вероятно, некоторые заядлые программисты, да и не только они, замечали, что, работая с компьютером на пределе засыпания, восприятие коренным образом меняется. Думать образами становится не в пример проще, для программиста это очень важно. Но все ли замечали, что теряют другую важную составляющую, а именно, ту самую чёрную дыру, которая вам так мешает. Вообще то никакой чёрной дыры нет, но надо же мне как-то обозвать свойство человеческого мозга вспоминать образы, и я не виноват, что мне чаще всего представляется перед внутренним взором пустое чёрное пространство. Короче, когда ваш мозг от недосыпа начинает глючить, вы из стихийника слова превращаетесь в стихийника образника , теряя при этом способность извлекать слова без участия образов. Так же, сразу после просыпания, и если вы выспались, у вас должен настать пик словесного мышления и самый сильный спад образного. Конечно, понятно, что все эти состояния регулирует жидкости в мозгу, которые за время бодрствования сгорают, а за время сна накапливаются. Но, не смотря на это, упорядочивания и быстрое извлечение знаний можно добиться, применяя лишь усилие воли, и меньше полагаясь на своё настроение, которое тоже формируется этими пресловутыми жидкостями.
Сейчас я, наконец-то подвёл к самому главному и имя ему научный метод. Многие из вас посмеются, очевидно, решив, что научный метод это когда бьют кулаком по телевизору, чтобы он заработал. Другие, возможно, думают, что научный метод, это метод проб и ошибок, но это не так, иначе метод назывался бы не научным, а опытным (в английском - экспериментальный). Что же в таком случае можно считать научным методом. Научный метод - это прежде всего жёсткое упорядочивание достоверных фактов. Вот тут многие люди делают две серьёзные ошибки. Они или берут достоверные факты и не правильно их упорядочивают, или начинают упорядочивать, давая каждому понятию другое название, как будь-то оттого, что слон будет назван элефантом, улучшится понимания сути предмета. Возьмём, к примеру, механику. Ну, спрашивается, зачем было назвать веретено - шпинделем (от англ. spindle - веретено)? И таким маразмом страдает большинство серьёзной литературы. Выходит русскоязычному человеку нужно запоминать как минимум в два раза больше, чем тому же англоязычному. В программировании дело обстоит ещё хуже.
Сейчас мы изучаем базу данных Access, так вот, эту программу не поленились перевести, и что же мы видим? Если вы выполняли действия, которые я описал, то сейчас находитесь в окне форм (самостоятельно найдите в справке описание термина окна форм). Откройте свойства формы, там пять вкладок Макет, Данные, События, Другие и Все. Кстати, название этих вкладок я написал по памяти. Тут дело в том, что я не поленился запомнить название окна - Свойства Формы, а далее упорядочил их, то есть первые четыре содержат разные свойства, а пятая это сумма предыдущих. Рекомендую вам проделать ту же операцию, чтобы при вопросе, а какие вкладки существуют в окне Свойства Формы, вы сразу знали ответ. Причём не нужно зубрить название, необходимо понять для чего нужна каждая категория, и осмыслив это, извлекать из памяти не название, а предназначение, а уж потом по нему находить само название. В окне свойств формы мы видим русские название слева от каждого поля свойств. Если же нам придёт в голову программировать, то названия в коде придётся набирать английскими словами, так как русские названия это всего лишь подписи, а не члены библиотеки Access. Вот и скажите мне, хорошо потрудились переводчики? До обновления будет выглядеть как BeforeUpdate. Однако это не так уж и плохо, так как на ряду с этим существует возможность получать русифицированную справку, а не только её англоязычное подобие.
На сегодня всё, и хоть в этом выпуске мы и не программировали, но получили общее представление об Access, попутно создав таблицу и связав её с помощью мастера форм с новой формой.
Web-технология |
Пример от DirectAnimation.
Хотя DirectAnimation уже устарела, и в версии DirectX9 вместо неё, а так же DirectDraw и Direct3D, теперь используется DirectX Graphics, однако я пока не стану сбрасывать эту библиотеку со счетов. Вот краткий пример, позволяющей оценить возможности DHTML и VBScript: запустить пример.
Если пример не запускается в Internet Explorer, то не забудьте разблокировать его содержимое. Не волнуйтесь, в нём отсутствуют макровирусы.
Внимательно просмотрите код файла, его можно найти в файле clock.html прикреплённого к письму. Обратите внимание, как похож VBScript на Visual Basic шестой серии. Таким образом, знающему человеку не составит большого труда преобразовать этот код в Visual Basic 6.3 для использования в программных продуктах Microsoft Office. В будущих выпусках я расскажу вам, как модифицировать Microsoft Word, чтобы он умел читать выбранный вами текст. Причём же тут Web? Дело в том, что пример будет мной преобразован из кода VBScript.
Создание реальных проектов |
Оправдание всегда найдётся.
Пока к моему великому сожалению я не могу предложить вам ничего стоящего.
- Оправдания автора рассылки:
- Рассылка ещё слишком молода.
- Мы ещё не проходили ни совместную работу с Access, ни программирование под DirectX9.
- Реальные проекты заработают сразу после прохождения темы Windows Forms.
Вопросы и ответы |
k |
|
Практическая работа с Visual Studio.Net и Microsoft Office | ||
|
В избранное | ||