1. Расположите на форме семь меток, восемь текстовых полей и одну командную кнопку (рис. 3.1).
Рис. 3.1
2. Установите значения свойства Name:
ü формы — frmFirst,
ü кнопки — cmdCalc,
ü текстовых полей для ввода имен файлов — txtFl, txtF2,..., txtF4,
ü текстовых полей для ввода размеров файлов — txtSize1, txtSize2,..., t xtSize4.
3. Установите значения свойства Caption всех объектов в соответствии с рис. 3.1.
4. По собственному усмотрению установите значения свойств, определяющих внешний вид объектов.
5. Добавьте в проект вторую форму (воспользовавшись командами меню Project, Add Form или кнопкой на панели инструментов).
6. Расположите на форме восемь меток и одну командную кнопку (рис. 3.2).
Рис. 3.2
7.Установите значения свойства Name:
ü формы — f rmSecond;
ü кнопки — cmdExit;
ü метки для вывода имен файлов — LbLFile;
ü метки для вывода суммарного размера файлов в Кбайтах — LbLКЬ;
ü метки для вывода суммарного размера файлов в Мбайтах — LbLМЬ;
ü метки для вывода суммарного размера файлов в байтах – LbLВ.
8. Установите значения свойства Caption формы, кнопки и меток, в которых информация не изменяется, в соответствии с рис. 3.2.
|
|
9. Установите по собственному усмотрению значения свойств, определяющих внешний вид объектов.
10. Добавьте в проект отдельный модуль (команды меню Project, Add Module или кнопка в раскрывающемся окне кнопки Add Form на панели инструментов).
11. Измените имя модуля на ВМb. После того, как вы добавили в проект вторую форму и модуль, Окно проводника проекта будет иметь вид, представленный на рис. 3.3.
Рис. 3.3
12. Оставьте имя модуля, предложенное по умолчанию: BMb.bas.
13. Напишите программные коды Формы1 и Формы2, а также код модуля. Сначала сформулируйте, что должно происходить в файле Формы1:
ü пользователь вводит имена файлов и их размер в килобайтах, щелкает по командной кнопке < Вычисление суммарного размера файлов>, в результате чего происходит расчет суммарного размера файлов в килобайтах;
ü далее вызывается модуль, осуществляющий перевод суммарного размера файлов в байты и мегабайты;
ü затем с экрана первая форма удаляется, и появляется вторая форма, при этом имена файлов и значения суммарных размеров файлов в разных единицах измерения передаются во вторую форму.
Далее сформулируйте, что должно происходить в файле Формы2:
ü значения суммарного размера файлов в разных единицах измерения печатаются в соответствующих метках;
ü при щелчке мышью по кнопке < Выход> программа завершает работу.
Для выполнения этих процедур потребуются переменные, причем разной области видимости. Ниже приведены программные коды и пояснения к ним.
Программный код | Пояснения | |
Форма1 | ||
Public SKb As Single | SKb — суммарный объем файлов в килобайтах. Эта переменная будет использоваться в модуле для перевода в байты и мегабайты, а также в коде Формы2. Она объявлена как глобальная (видимая в обеих формах и модуле) | |
Public if1, if2, if3, if4 As String | if1, if2, if3, if4 — имена файлов. Эти переменные будут использоваться в коде формы 2; они объявлены как глобальные. | |
Dim sf1, sf2, sf3, sf4 As Single | sfl, sf2, sf3, sf4 — размеры файлов в килобайтах. Эти переменные будут использоваться только в процедуре Формы1. Они объявлены как локальные в разделе общих объявлений | |
Private Sub cmdCalc Click() | ||
sfl =... | ||
sf2 =... | ||
sf3 =... | ||
sf4 =... | ||
ifl =... | ||
if2 =... | ||
if3 =... | ||
if4 =... | ||
SKb =... | ||
BMb | Вызов модуля BMb | |
FrmFirst.Hide | Форма1 удаляется с экрана | |
FrmSecond.Show | Форма2 отображается на экране | |
End Sub | ||
Форма2 | ||
Private Sub Form_Load() | Процедура выполняется при загрузке Формы 2 | |
LbLFile.Caption = frmFirst.ifl + "," + frmFirst.if2 + "," + frmFirst. if3 + "," + frmFirst.if4 + " составляет: " | В метку LbLFile помещаются имена файлов (свойство Caption), которые берутся из Формы1 | |
LbLKb.Caption = frmFirst.SKb | В метку LbLKb помещается суммарный размер файлов, который берется из Формы1 | |
LbLMb.Caption = Str(SMb) | В метку LbLMb помещаются суммарный размер файлов в мегабайтах, который был вычислен в модуле | |
LbLB.Caption = Str(Sb) | В метку LbLB помещаются суммарный размер файлов в байтах, который был вычислен в модуле | |
End Sub | ||
Private Sub cmdExit_CIick() ... End Sub | ||
Модуль кода | ||
Public SMb, Sb As Single | Подумайте, почему переменные SMb и Sb объявлены как глобальные | |
Public Sub BMb() | ||
Const Conv As Integer = 1024 | Подумайте, почему значение константы равно 1024. Значение переменной SKb для перевода берется из Формы1 | |
SMb = frmFirst.SKb/ Conv | ||
Sb = frmFirst.SKb * Conv | ||
End Sub | ||
Пояснение. Метод Show используется для отображения формы на экране, Метод Hide — для удаления формы с экрана.
|
|
14. Наберите программный код. Самостоятельно заполните пропуски (...).
Первая строка процедуры Form_Load() достаточно длинная, поэтому она не уместится на экране, однако ее можно просмотреть в окне кода с помощью полосы прокрутки, но это не всегда удобно.
Рекомендация Используйте комбинацию пробела и подчеркивания для переноса оператора на следующую строку. Текст, набранный в кавычках, переносить нельзя.
Строка
LbLFile.Caption = frmFirst.if1 + "," + frmFirst. if2 +"," + frmFirst. if3 + ", " + frmFirst.if4 + " составляет:"
может быть набрана следующим образом:
LbLFile.Caption = frmFirst.if1 + "," + frmFirst. if2 + _
"," + frmFirst. if3 + "," + frmFirst.if4 + " составляет:"
15. Замените в программном коде Формы 1 ключевое слово Dim на Private. Убедитесь, что программа по-прежнему будет работать правильно. Dim и Private в разделе глобальных объявлений равнозначны.
16. Попробуйте перенести строку