3. Вставка рисунков в программу.
Иногда для пояснения сути расчёта нужно добавить рисунок. Чтобы поместить рисунок на форму программы можно применить элемент управления Рисунок (Image). Важными свойствами <>(по крайней мере в нашем случае) для данного объекта являются : <> - Picture ................../указать путь к рисунку/;
<> - PictureSizeMode..../выбрать один из трёх вариантов/ (удобно применять вариант <>1<>-frmPictureModeStretch рисунок подгоняется по размеру окна объекта Рисунок (Image)<>)
И так приступим к доработке примера нашей программы (его можно взять из архива Primer3.rar) . Сначала создадим рисунок , например такой :
|
Установим размер объекта примерно равным размеру нашего рисунка. Переходим в окно "Свойства" и для свойства <>Picture выбираем наш рисунок. А для <>PictureSizeMode выбираем значение <>1<>-<>frmPictureModeStretch . Отрегулируем размер объекта <>Рисунок (Image) так как Вам нужно.
Рис.3. Рисунок для добавления.
И должно получиться примерно следующее :
Рис. 4. Добавлен рисунок с помощью элемента управления "<>Рисунок "(Image).
<>
<>4. Элемент управления -Кнопка выбора (OptionButton).
Иногда нужно рассчитать по длине провода его сопротивление. И если добавить в нашу программу такую возможность, то можно будет смело завершать данный проект, т.к. основные расчётные возможности программы будут реализованы.
Сравним две расчётные формулы : где :
Расчёт длины провода - L=S * R / p L- длина провода (м);
Расчёт сопротивления провода - R=L * p / S S- Сечение провода (мм2);
R- Сопротивление провода(Ом);
p- Удельное сопротивление.
Чтобы произвести расчёт сопротивления провода по длине провода достаточно изменить формулу, а переменные для ввода расчётной величины(R) и вывода результата (L) оставить без изменения. Тогда алгоритм расчёта будет следующим:
ЕСЛИ рассчитываем длину провода по заданному сопротивлению ТО :
L=R *S / p , где L -длина провода(М) ; R-сопротивление(Ом) ;
ЕСЛИ рассчитываем сопротивление провода по заданной длине ТО :
L=R *p / S , где L - сопротивление(Ом); R- длина провода(М);
На форме нужно поменять пояснительные надписи и заменить рисунок как показано на Рис.5 :
Рис. 5. Пояснение изменений на форме.
Для выбора вида расчёта, в нашем случае, идеально подходят элементы управления "<>Кнопка выбора (OptionButton)" и рамка (Frame). Сделаем копию с файла "RRasch22.xls" и переименуем в "RRasch22.xls". Приступаем к доработке. Поместим на форму Рамку и две кнопки выбора, как показано на Рис.6:
Рис. 6. Элементы управления для выбора вида расчёта.
Изменим свойства для кнопок выбора.
Для OptionButton1 Name= Opb1
Для OptionButton2 Name=Opb2
В процедуре UserForm_Initialize() (в конце) допишем для данных элементов управления код инициализации:
Private Sub UserForm_Initialize()
.. .. .. .. .. ....
.. .. .. .. .. ....
'***** Начальные установки для "ВЫБОРА ВИДА РАСЧЁТА"
Frame1.Caption = "Что будем рассчитывать?"
Opb1.Caption = "Длину" ' Заголовок элемента
Opb2.Caption = "Сопротивление" ' Заголовок элемента
Opb1.Value = True ' Появится точка выбора
'***************************************************
End Sub
Значение свойства Value, для кнопки выбора, может принимать только значение True или False . При изменении значения свойства Value происходит событие Change(). Для каждой кнопки выбора напишем код программы :
Private Sub Opb1_Click()
If Opb1.Value = True Then
Opb2.Value = False
Label3.Caption = " Длина (M)"
Label1.Caption = "Сопротивление(Ом)"
lblL.Caption = " "
Me.Caption = "Расчёт длины провода."
Else
Opb2.Value = True
End If
'***** Загрузить картинку ******
PathProecta = Application.Workbooks(1).Path & "\" '***** Определяем путь проекта *****
PPic1 = PathProecta + "R01.jpg"
Image1.Picture = LoadPicture(PPic1)
End Sub
Private Sub opb2_Change()
If Opb2.Value = True Then
Opb1.Value = False
Label1.Caption = " Длина(M)"
Label3.Caption = "Сопротивление(Ом)"
lblL.Caption = " "
Me.Caption = "Расчёт сопротивления провода."
Else
Opb1.Value = True
End If
PathProecta = Application.Workbooks(1).Path & "\" '***** Определяем путь проекта *****
PPic1 = PathProecta + "R02.jpg"
Image1.Picture = LoadPicture(PPic1)
End Sub
Для изменения заголовка на форме проекта нужно изменить в форме свойство Caption.
При обращении к форме применяем обращение :
Me.Caption = "Расчёт сопротивления провода."
Для изменения картинки применяем команду LoadPicture(PPic1), путь к проекту определяем при помощи команды :Application.Workbooks(1).Path . Да приходится обращаться к объекту Workbooks Excel , что бы узнать местонахождение наших картинок:
Рис.7. Расчёт длины провода. Рис. 8. Расчёт сопротивления провода.
А теперь главное - код для расчётов (Добавлено всего четыре строчки !!!):
Private Sub cmdR_Click()
R = TransD(txtR.Value) 'ВВОД
D = TransD(txtD.Value)
'P = 0.0175 ########### ЗАКОМЕНТИРУЕМ ОПРЕДЕЛЕНИЕ КОЭФ.
'***** Р А С Ч Ё Т
S = (3.1415926 * D ^ 2) / 4
If Opb1.Value = True Then ' Добавлено
L = S * R / P
Else 'Добавлено
L = R * P / S ' Добавлено
End If ' Добавлено
'*****************
lblL.Caption = Format(L, "0.000") ' В Ы В О Д
End Sub
Проверить работу программы можно так:
вносим сопротивление, например 1 Ом , диаметр 0.1 мм -получаем результат L=0,449 м.
Переключаем на расчёт сопротивления и вносим ранее полученный результат 0,449 м .
Если результат расчёта 1Ом, то всё выполнено правильно.
Готовый пример для данных изменений здесь :Primer4.rar
Применение Объектов Excel в проекте VBA .
