Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Полный текст модуля




 

 

//=====================================================

// Laborat_om

//=====================================================

Shell(False)

Public F, iflag, colcol, rowrow, vkl_otkl

 

iflag = 0

colcol=0 && текущие значения горизонтальной координаты указателя мыши

rowrow = 0 && текущие значения вертикальной координаты указателя мыши

vkl_otkl = false && состояние рубильника (первоначально выключен)

 

#Include "Win32api_my.h"

 

//======================================= 1 ============

Define Form F Property metric 6, top 20, left 100,;

width 800, height 600,;

mdi false,; && форма не обладает свойством MDI

minimize false,; && Форма не может быть свернуто в иконку

maximize false,; && форма не может быть развернута на весь экран

escexit false,; && клавища ESC - отключена

text ' ',; && текст в строке заголовка окна отсутствует

sizeable false,; && форма не может изменять своих размеров

moveable true,; && форма не может перемещаться в пределах экрана

background "file scene.jpg",; && графический файл в виде фона окна

onmousemove rubilnik,; && метод при перемещении указателя мыши

onleftmouseup on_off && метод при нажатии или отпускании левой кнопки

//=======================================================

// Тексты метки реостатов =========== 2 ========

Define Text TXR1_1 of F property metric 6, top 80, left 250,;

width 100, height 30,;

fontbold true,; && утолщенный шрифт

text "R1",; && собственная надпись

colornormal "W*",; && цвет - белый

fontsize 18,; && размер шрифта

transparent true && установка прозрачности текста

//======================================= 3 ========

Define Text TXR1_2 of F property metric 6, top 320, left 700,;

width 100, height 30, fontbold true, text "R1", colornormal "W*",;

fontsize 18, transparent true

//======================================= 4 ===========

Define Text TXR2_1 of F property metric 6, top 200, left 250,;

width 100, height 30, fontbold true, text "R2", colornormal "W*",;

fontsize 18, transparent true

//======================================= 5 ============

Define Text TXR2_2 of F property metric 6, top 400, left 310,;

width 100, height 30, fontbold true, text "R2", colornormal "W*",;

fontsize 18, transparent true

//======================================= 6 ==========

// Показания амперметра

Define text tx_1 of F property metric 6, top 456, left 64,;

height 27, width 120,;

borderstyle 3,; && отсутствие границы объекта

fontsize 18,; && размер шрифта

fontbold true,; && шрифт утолщенный

text " ",; && первоначально текста нет

transparent true,; && текст со свойством прозрачности

colornormal "0xffffff" && цвет текста - белый

//======================================= 7 ===========

// Показания вольтметра

Define text tx_2 of F property metric 6, top 526, left 64,;

height 27, width 120, borderstyle 3,;

fontsize 18, fontbold true, text " ",;

transparent true, colornormal "0xffffff"

//======================================== 8 ===========

// Показание левого реостата

Define text tx_2R of F property metric 6, top 466, left 319,;

height 27, width 140, borderstyle 3,;

fontsize 18, fontbold true, text " ",;

transparent true, colornormal "0xffffff"

//========================================= 9 ===========

// Показание правого реостата

Define text tx_2RR of F property metric 6, top 398, left 584,;

height 27, width 140, borderstyle 3,;

fontsize 18, fontbold true, text " ",;

transparent true, colornormal "0xffffff"

//========================================= 10 ============

// Левый слайдер - имитатор ползунка для изменения сопротивления

Define slider sdd of F property metric 6, top 430, left 308,;

width 135, height 30,;

borderstyle 3,; && отсутсвие отрисовка прямоугольной области

tics 2,; && отсутствие отрисовки шкалы и цены деления

colornormal "0x00ff4c/0x87114c",; && цвет ползунка

rangemin 1.0, rangemax 1000.0,; && минимальное и максимальное значения

onchange change_sdd && функция метода при изменении значения

//========================================= 11 ==========

Define slider sds of F property metric 6, left 568, top 364,;

width 135, height 30,;

borderstyle 3, tics 2, colornormal "0x00ff4c/0x87114c",;

rangemin 1.0, rangemax 1000.0,;

onchange change_sds

//========================================== 12 ==========

// Изображение включенного состояния рубильника. Его первоначальное

// состояние выключено. Когда это изображение видимо, его при помощи

// указателя мыши можно перемещать в пределах экрана.

Define image img of F property metric 6, top 436, left 546,;

datasource 'file key.gif', width 160, height 94,;

OnLeftMouseDown {; SendMessage(F.img.Hwnd, 0x00A1, 2, 0); },;

borderstyle 3, visible false, onmousemove rubilnik

 

F.open()

 

//======================================

procedure on_off (iflag, colcol, rowrow)

if colcol > 552.and. colcol < 741.and. rowrow > 453.and. rowrow < 554

f.img.visible =.not. f.img.visible

vkl_otkl =.not. vkl_otkl

endif

// Вызов данных процедур осуществляется для обновления отрисовки

do change_sdd

do change_sds

return

//================================================

procedure change_sdd

// Метод для левого реостата

// При каждом изменении значения сопротивления обновляется

// визуализация значения текущего сопротивления.

f.tx_2R.text = ltrim(rtrim(str((f.sdd.value),7,3))) + ' ом'

// Если рубильник выключен - тока в цепи нет, нет и показаний

// амперметра и вольтметра

if vkl_otkl = false

f.tx_1.text = ' '

f.tx_2.text = ' '

return

endif

// Обновление значений амперметра и вольтметра.

// Здесь эти показания рассчитываются случайным образом и

// изменение расчетных

// формул может быть обучаемыми произведено самостоятельно.

f.tx_1.text = ltrim(rtrim(str((f.sdd.value)*random(-0.3)*0.00010 *;

f.sds.value,7,3))) + ' A '

f.tx_2.text = ltrim(rtrim(str((f.sds.value)*random(-0.3)*0.0010 *;

f.sdd.value,7,3))) + ' V '

return

//=================================================

procedure change_sds

f.tx_2RR.text = ltrim(rtrim(str((f.sds.value),7,3))) + ' ом'

 

if vkl_otkl = false

f.tx_1.text = ' '

f.tx_2.text = ' '

return

endif

 

f.tx_1.text = ltrim(rtrim(str((f.sdd.value)*random(0.3)*0.10 *;

f.sds.value,7,3))) + ' A '

f.tx_2.text = ltrim(rtrim(str((f.sds.value)*random(0.3)*0.10 *;

f.sdd.value,7,3))) + ' V '

return

//=======================================

procedure rubilnik (iflag, colcol, rowrow)

// Переключение рубильника может быть осуществлено лишь в том случае,

// когда указатель мыши находится строго в пределах прямоугольника

// 552 < x < 741 453 < y < 554

// При этом будет изменяться вид курсора - с обычной стрелки на рисунок ладони

if colcol > 552.and. colcol < 741.and. rowrow > 453.and. rowrow < 554

F.mousepointer= 13

else

F.mousepointer= 0

endif

return

 

 




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 274; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.017 сек.