![]() Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
![]() Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
![]() |
Текст программы управления моделью крана⇐ ПредыдущаяСтр 13 из 13
Procedure delayy(time,dn); процедура реализует задержку, замена For j=1 To time; стандартной delay() For g=1 To dn Step 1 y=100 Next g Next j EndProcedure
Procedure LPT_Inp(Address); процедура получения информации Value = CallFunction(1, "Inp32", Address); из регистра состояния LPT-порта ProcedureReturn Value; принятый байт EndProcedure
Procedure kod(nomer); подпрограмма преобразования порядкового If nomer=0; номера в единицу соответствующего разряда n=1 EndIf If nomer=1 n=2 EndIf If nomer=2 n=4 EndIf If nomer=3 n=8 EndIf If nomer=4 n=16 EndIf If nomer=5 n=32 EndIf If nomer=6 n=64 EndIf If nomer=7 n=128 EndIf ProcedureReturn n EndProcedure
Procedure LPT_Out(Address, Value); процедура записи информации в CallFunction(1,"Out32", Address, Value); регистр данных LPT-порта EndProcedure
If OpenLibrary(1,"inpout32.dll")=0; Открываем файл inpout32.dll, для использования его функций MessageRequester("Нет файла!", "Для работы программы требуется файл"+Chr(10)+Chr(13)+ " inpout32.dll",16) End; Завершаем работу программы при отсутствии файла inpout32.dll EndIf lpt_out($378,0) OpenLibrary(2,"user32.dll"); Открываем файл user32.dll, для использования его функций string1.s ; Создаём окно. InitMouse() InitKeyboard() OpenWindow(1,10,10,640,400,"Управление Моделью Крана",#PB_Window_MinimizeGadget) LoadImage(0,"screen_1.bmp") ButtonGadget(2,131,137,25,25,"") ButtonGadget(3,230,137,25,25,"") ButtonGadget(4,178,98,25,25,"") ButtonGadget(5,178,180,25,25,"") ButtonGadget(6,350,20,280,25,"Режим управления клавиатурой и мышью") ButtonGadget(7,480,360,140,25,"Выйти из программы") ;ButtonGadget(11,50,250,250,30,"Получить информацию о состоянии регистра") ;StringGadget(12,50,280,80,20, "",#PB_String_Numeric) TextGadget(10,10,330,150, 30,"Длительность управляющих импульсов - мс ") StringGadget(9,80,342,40,18, "10",#PB_String_Numeric) ImageGadget(0, 0, 0, 400, 300, ImageID(0)) ;StringGadget(8, 8, 200, 100, 20, "") AddKeyboardShortcut(1, #PB_Shortcut_Escape, 7) ;AddKeyboardShortcut(1, #PB_Shortcut_Right, 3) ;AddKeyboardShortcut(1, #PB_Shortcut_Up, 4) ;AddKeyboardShortcut(1, #PB_Shortcut_Down, 5) StartTime = ElapsedMilliseconds(); Get the actual value For u=1 To 10000000 Step 1 y=100 Next u ElapsedTime = ElapsedMilliseconds()-StartTime dn=Round(10000000/ElapsedTime*100/200, #PB_Round_Up) ;text.s=StrQ(dn) ;SetGadgetText(8,text) Repeat; Начало главного цикла. If e=1 lpt_out($378,0) OpenWindow(1,10,10,640,400,"Управление Моделью Крана",#PB_Window_MinimizeGadget) LoadImage(0,"screen_1.bmp") ButtonGadget(2,131,137,25,25,"") ButtonGadget(3,230,137,25,25,"") ButtonGadget(4,178,98,25,25,"") ButtonGadget(5,178,180,25,25,"") ButtonGadget(6,350,20,280,25,"Режим управления клавиатурой и мышью") ButtonGadget(7,480,360,140,25,"Выйти из программы") ;ButtonGadget(11,50,250,250,30,"Получить информацию о состоянии регистра") ;StringGadget(12,50,280,80,20, "",#PB_String_Numeric) TextGadget(10,10,330,150, 30,"Длительность управляющих импульсов - мс ") StringGadget(9,80,342,40,18, "10",#PB_String_Numeric) ImageGadget(0, 0, 0, 400, 300, ImageID(0)) ;StringGadget(8, 8, 200, 100, 20, "") AddKeyboardShortcut(1, #PB_Shortcut_Escape, 7) ;AddKeyboardShortcut(1, #PB_Shortcut_Right, 3) ;AddKeyboardShortcut(1, #PB_Shortcut_Up, 4) ;AddKeyboardShortcut(1, #PB_Shortcut_Down, 5) e=0 EndIf Event=WaitWindowEvent(); Получаем идентификатор события. Gadget=EventGadget(); Узнаём идентификатор активного гаджета. string1=GetGadgetText(9) t=ValQ(string1) If Gadget=7 And event=#PB_Event_Gadget x=1 EndIf If Gadget=2 And event=#PB_Event_Gadget;движение влево For i=1 To 10 Step 1 For j=3 To 0 Step -1 k=kod(j) lpt_out($378,k) Delayy(t,dn) Next j lpt_out($378,0) Next i EndIf If Gadget=3 And event=#PB_Event_Gadget;движение вправо For i=1 To 10 Step 1 For j=0 To 3 Step 1 a=lpt_inp($379) If a=126 k=kod(j) lpt_out($378,k) Delayy(t,dn) EndIf Next j lpt_out($378,0) Next i
EndIf If Gadget=4 And event=#PB_Event_Gadget;движение вверх For i=1 To 40 Step 1 For j=4 To 7 Step 1 k=kod(j) lpt_out($378,k) Delayy(t,dn) Next j lpt_out($378,0) Next i EndIf If Gadget=5 And event=#PB_Event_Gadget;движение вниз For i=1 To 40 Step 1 For j=7 To 4 Step -1 k=kod(j) lpt_out($378,k) Delayy(t,dn) Next j lpt_out($378,0) Next i EndIf If Event=#PB_Event_Gadget And Gadget=6 j=0 i=0 s=0 InitSprite() OpenWindowedScreen(WindowID(1), 0, 0, 40, 30, 0, 0, 0) Repeat a=lpt_inp($379) j=j+1 If j>3 j=0 k=kod(j) lpt_out($378,k) Delayy(t/2,dn) Else k=kod(j) lpt_out($378,k) Delayy(t/2,dn) EndIf Until a=118 Repeat ExamineMouse();слежение за состоянием курсора мыши ExamineKeyboard();слежение за нажатыми клавишами x = MouseDeltaX() y = MouseDeltaY() w=MouseWheel() a=lpt_inp($379) If (x>1 Or KeyboardPushed(#PB_Key_Right)) And (a=126) j=j+1 s=s-1 If j>3 j=0 k=kod(j) lpt_out($378,k) Delayy(2*t,dn) Else k=kod(j) lpt_out($378,k) Delayy(2*t,dn) EndIf
EndIf If (x<-1 Or KeyboardPushed(#PB_Key_Left)) And (s<170) j=j-1 If j<0 j=3 k=kod(j) lpt_out($378,k) Delayy(2*t,dn) Else k=kod(j) lpt_out($378,k) Delayy(2*t,dn) EndIf s=s+1 EndIf If y<-1 Or KeyboardPushed(#PB_Key_Up) i=i+1 If i>7 i=4 k=kod(i) lpt_out($378,k) Delayy(t,dn) Else k=kod(i) lpt_out($378,k) Delayy(t,dn) EndIf EndIf If y>1 Or MouseButton(2) Or KeyboardPushed(#PB_Key_Down) i=i-1 If i<4 i=7 k=kod(i) lpt_out($378,k) Delayy(t,dn) Else k=kod(i) lpt_out($378,k) Delayy(t,dn) EndIf EndIf If w>0 For i=1 To 20 Step 1 For j=4 To 7 Step 1 k=kod(j) lpt_out($378,k) Delayy(t,dn) Next j Next i EndIf If w<0 For i=1 To 20 Step 1 For j=7 To 4 Step -1 k=kod(j) lpt_out($378,k) Delayy(t,dn) Next j Next i EndIf lpt_out($378,0) Until KeyboardPushed(#PB_Key_Escape) e=1 EndIf lpt_out($378,0) If Gadget=11 And event=#PB_Event_Gadget a=lpt_inp($379) text.s=StrQ(a) SetGadgetText(12,text) EndIf Until Event = #PB_Event_CloseWindow Or x=1; Прерываем цикл если в переменной "Event" будет число равное числу в константе. lpt_out($378,0) TextGadget(14,100,380,150, 30,"Shevelev I.V. Syktyvkar 2010 ") Delay(1000) End; Директива, завершающая программу.
Date: 2015-05-05; view: 559; Нарушение авторских прав |