Кое-что о, а также первая программа

Содержание

  1. Прежде, чем начать писать программу…
  2. Так где же мы будем хранить свои программы?
  3. Исследовательская работа: «Связь формата файла с его размером»
  4. Кое-что о Windows
  5. В каком редакторе будем набирать текст нашей программы?
  6. Практическая работа

Прежде, чем начать писать программу…

… надо на жёстком диске (называемом также винчестером) определить место, где будут храниться ваши будущие программы. На винчестере вашей машины находится огромное количество файлов. Это можно проверить. Давайте посмотрим, сколько файлов находится в системной папке операционной системы Windows.

Перемещение (а тем более — удаление) файлов в системных папках может привести к необратимым системным сбоям. Поэтому системный администратор может закрыть доступ к системным папкам или скрыть некоторые файлы. Это не беда, экспериментируйте с другими папками.

Чтобы узнать количество файлов в папке C:\Windows, достаточно открыть окно Мой компьютер, перейти на диск C:, а затем щёлкнуть правой кнопкой мыши по значку папки Windows и выбрать пункт Свойства в контекстном меню.

Как видите, только в одной системной папке Windows более 10 000 файлов. Для того, чтобы не запутаться в таком количестве папок и файлов их определенным образом раскладывают по папкам, которые имеют иерархическую структуру (употребляют также и термин древовидная структура).

На самом деле, идея считать файлы в папке Windows неплоха, но, скорее всего, ваш системный администратор закрыл доступ к этой папке. Скажу по секрету, что папка Мои документы обычно содержит не меньше файлов.

Так где же мы будем хранить свои программы?

Конечно, не в папке Windows и не в папке Program Files, а в папке Мои документы. Создайте там папку Devel, в ней папку Training («обучение»), а в последней — папку Lesson-1. Это и будет рабочая папка для первого урока.

Если вы внимательно прочитаете раздел «Кодирование информации», то вам станет ясно, почему названия папок (а в дальнейшем — и файлов) мы предлагаем вводить латинскими буквами. Использовать символы национальных алфавитов (в частности кириллического) в именах файлов и папок в принципе возможно, но при обращении к ним из других программ могут возникнуть некоторые трудности, которые нам совершенно не нужны. Так что старайтесь по возможности избегать в именах файлов и папок всяких экзотических (и не очень) символов. Хотя система отслеживает, какие имена вы присваиваете, и не даст вам ввести такие символы, как \:/*?"<>|, старайтесь всё же в именах файлов и папок обойтись без излишеств. Кроме того, не забывайте, что имена файлов и папок должны давать представление об информации, что в них содержится. Вряд ли стоит называть папку с программами как-нибудь вроде my_n55.

От себя порекомендую ограничиться в именах файлов и папок строчными буквами латинского алфавита, цифрами, точкой и дефисом. Имя файла с исходным текстом программы может выглядеть, например, так: my-program-v1.2-probe.devel.

Исследовательская работа: «Связь формата файла с его размером»

  1. В Блокноте запишите свои фамилию и имя, затем сохраните этот файл в папке Lesson-1;
  2. То же самое проделайте в Word'е и в WordPad'е (в последнем случае файл сохраните с расширением .rtf);
  3. В Paint используя инструмент Надпись введите тот-же текст. Сохраните его трижды с расширениями bmp, jpg, и gif.
  4. В проводнике вы увидите приблизительно следущее:
  5. В любом редакторе заполните таблицу:
    ИмяРасширениеТипПриложениеРазмер, байтРазмер, Кбайт
    1 Name.gif.gifРисунок GIFPaint2 8933
    2 ... ... ... ... ......
    3 ... ... ... ... ......
    4 ... ... ... ... ......
    5 ... ... ... ... ......
    6 ... ... ... ... ......

Размер файла в проводнике округлен. Его следует смотреть в свойствах файла. Свойства можно посмотреть, щелкнув правой кнопкой мыши на имени файла. Здесь можем увидеть и атрибуты файла.

Интересно, почему размер файла, записанного на диск, отличается от истинного размера?

Надеюсь, вы не восприняли всерьёз идею хранить текст в графических файлах? Кстати, из исследования вам должно стать ясно, что самых хороший формат — это чистый текст, расширение .txt. Заодно отвечу на последний вопрос: файл записывается на диск по частям, причём каждая часть записывается с отдельный участок диска, называемый кластером. Поскольку размер кластера довольно велик (порядка нескольких Кбайт), то последний кластер останется недозаполненным.

Кое-что о Windows

Нам придется освоить несколько ключевых терминов Windows.

Форма
Окно верхнего уровня, то есть то, что мы обычно понимаем под окном. Именно на форме мы располагаем элементы управления. И хотя сама операционная система ничего не знает ни о каких формах, для нас этот термин будет удобен, поскольку во многих средах разработки (среди них Visual Basic, Delphi, .NET Framework) используется понятие формы.
Окно
Прямоугольная область экрана, с которой система может работать как сотдельной сущностью. Окнами являются как формы, так и элементы управления, например, текстовыеполя, кнопки или флажки. Собственно, одна из основных задач операционной системы Windows (что и переводится как «окна») — управление всем этом хозяйством.

Наиболее просто работу Windows можно объяснить, используя всего три понятия — окна (window), события (event) и процедуры обработки события (event procedure).

Рассмотрим событие и процедуру обработки события при работе с ярлыком. Однократный щелчок по ярлыку — это событие для ярлыка. Система обрабатывает его (вызывая процедуру обработки), и в результате ярлык выделяется цветом. По событию двойной щелчок по ярлыку система открывает файл, на которой ссылается этот ярлык.

Вообще-то три «кита» для Windows — это понятия окна, события и сообщения. Под последним понимается информация о произошедшем событии, направляемая приложению для обработки. Обработкой занимается процедурой обработки событий.

В каком редакторе будем набирать текст нашей программы?

Практически любой среда программирования имеет специализированный текстовый редактор, в котором и осуществляется набор кода. Devel — средство разработки, которым будем пользоваться мы — такого редактора пока не имеет. Вы можете использовать любой текстовый редактор, который вам нравится, лишь бы он мог сохранять файлы в обычном текстовом формате (Word не подходит). Сгодится даже Блокнот, хотя удобнее пользоваться специализированным редактором, например, программой Aditor.

Можно использовать любой редактор, понимающий формат ANSI Text. Однако Aditor вполне удобен для написания небольших программ. В частности, именно в этом редакторе я сейчас набиваю данный текст.

Практическая работа

Задача. Создать форму, на которой есть две строки текста: «Здравствуй, мир!» и «Hello, world!» — а также кнопка «ОК», закрывающая форму.

Откроем Блокнот и, не введя ни одного символа, сохраним этот пустой файл с любым именем и расширением .devel. Конечно, сохранить файл необходимо так, чтобы его было потом легко найти; можно, например, поместить его в папку Lesson-1.

Запустите этот файл, дважды щелкнув его в проводнике.

На экране вы увидите следующее:

Это пустая форма. Или — с позиции операционной системы Windows — это пустое диалоговое окно.

Пока мы добились немногого — ну кого, в конце концов, заинтересует такая вот пустая форма? Но дело в том, что форма умеет создавать на себе различные элементы управления.

С позиций объектно-ориентированного программирования форма — это объект, а добавление на форму элементов управления — это вызов метода.

Метод
Действие, выполняемое над объектом.

Попробуем применить свежеприобретённые знания. Наберём в Блокноте следующий код (будьте внимательны, не допустите ошибки).

AddLabel "lblHelloRu", "Здравствуй, мир!"
AddLabel "lblHelloEn", "Hello, world!"
AddButton "cmdOK", "ОК"

Каждая из трёх строк — это вызов метода. Сначала мы вызвали метод AddLabel (добавить метку), задав имя метки («lblHelloRu») и её текст («Здравствуй, мир!»).

Имя нужно, чтобы в дальнейшем отличать один элемент управления от другого при обращении к нему из кода программы. Будьте внимательны, потому что создавать два элемента управления с одинаковыми именами нельзя.

Затем мы ещё раз вызвали AddLabel для создания второй метки, и, наконец, вызвали метод AddButton, чтобы создать кнопку.

Снова сохраните программу и запустите её.

Если вы не допустили никаких ошибок, на экране должно появиться вот что:

[IMAGE]

Ну вот, кое-чего мы добились; в целом, задача выполнена. Плохо только, что и текст и кнопка располагаются в одну строчку. От этого неприятного эффекта можно избавиться, воспользовавшись методом NewLine, после вызова которого новые элементы управления будут добавляться с новой строки. Модифицируйте код следующим образом:

AddLabel "lblHelloRu", "Здравствуй, мир!"
NewLine
AddLabel "lblHelloEn", "Hello, world!"
NewLine
AddButton "cmdOK", "ОК"

Вы запустили программу? Мы в дальнейшем не будем напоминать, но подразумевается, что вы запускаете новый вариант (или, как говорят программисты, версию) программы всякий раз после модификации.

Попробуем теперь поменять размеры кнопки. Для этого изменим последнюю строку так:

AddButton "cmdOK", "ОК", 100, 100

Конечно, нас такая кнопка не устраивает, но мы видим, что размерами кнопки (и не только этой кнопки, а любого элемента управления) можно управлять.

Основные методы создания элементов управления записываются так:

Метод "ИмяЭлемента", "ПодписьЭлемента", Ширина, Высота

Ширину и высоту элемента управления можно не указывать (в таком случае Devel установит для этих величин значения по умолчанию). В таком случае метод будет записываться короче:

Метод "ИмяЭлемента", "ПодписьЭлемента"

Рассмотрим формат записи более подробно. На первом месте стоит имя метода, а далее — список параметров, разделённых запятыми. Во всех методах создания элементов управления применятеся один и тот же список параметров:

Пример.

AddButton "cmdClose", "Закрыть", 100, 20

Методу NewLine никакие параметры не нужны, ведь выполняемая им задача очень проста. Тем не менее, NewLine — тоже метод, хотя записывается иначе, чем AddLabel и AddButton.


ТЕКСТ ДАЛЕЕ ЕЩЁ НЕ ГОТОВ К УПОТРЕБЛЕНИЮ.

Как передвинуть кнопку с именем cmdExit вниз и вправо. Очень просто — добавить выше и слева пустые поля.

Чтобы результат работы больше был похож на стандартные формы директивой Caption добавим заголовок формы. В результате код программы станет таким:

1Caption = "Приветствие"
2AddLabel "lblHello_1", "Здравствуй, мир"
3NewLine
4AddLabel "lblHello_2", "Hello, world",80,30
5NewLine
6AddLabel "lblnobody", "",100,0
7AddButton "cmdExit", "Выход",60,20	

Все хорошо, но к сожалению наша единственная кнопка не работает. Она и не будет работать, пока мы не напишем процедуру обработки события происходящего при нажатии на эту кнопку. Пишем код обработки события щелчок по кнопке (Click).

Код заключается в следующую конструкцию:

Sub ИмяПроцедуры_Событие
код обработки события
End Sub

где Sub — Subroutine (процедура или подпрограмма), а End Sub — конец процедуры.

Имя процедуры &mdash: составное. Оно состоит из имени элемента управления, знака подчеркивания, и имени события. В именах процедур пробелы не допускаются.

А вся процедура обработки события — единственная директива — Quit (уйти), т.е. закрыть программу.

Вот так будет выглядеть процедура обработки события Click (щелчок) нашей кнопки с именем cmdExit:

Sub cmdExit_Click
    Quit
End Sub

Чтобы программа более походила на профессиональную разработку, надо добавить комментарии или их еще называют ремарки, в некоторых языках их так и обозначают REM или знаком ' — это апостроф (одинарная кавычка). Апострофы служат для улучшения читабельности программ, а также для служебной информации. Скажем в начале любой программы следует указать — кто, где, когда и для чего делал эту программу.

То, что пишется в строке после знака — ' — это служебная информация и система (devel) знает об этом.

'Астана/devel/30-11-04/Lesson-1
Caption = "Приветствие"
AddLabel "lblHello_1", "Здравствуй, мир"
NewLine
AddLabel "lblHello_2", "Hello, world",80,30
NewLine
AddLabel "lblnobody", "",100,0
AddButton "cmdExit", "Выход",60,20
'========= Процедура выхода ===========
Sub cmdExit_Click
   Quit
End Sub

Проверим, как будет работать наша программа.

ЗАПУСТИТЬ

А вот так код нашей программы будет выглядеть в текстовом редакторе Aditor:



Код программы, благодаря цветовой подсветке, смотрится на много лучше, но к сожалению Editor — сторонняя разработка, и мы можем только рекомендовать его и использованию. Редактор можно скачать по адресу

Примечание

К сентябрю 2005 года будет разработан собственный редактор для devel.

Targi, 2004