Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Power Basic

Страница: 1 |

 

  Вопрос: Как создать консольное приложение на PB WIN? Добавлено: 19.03.04 16:26  

Автор вопроса:  alex

что бы в нем были все функции из PBCC, WAITKEY$, CLS, LINE INPUT и т.д.

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 19.03.04 17:32

Пример консоли у меня есть, но я думаю что это не совсем то что ты хотел... На то от и Win чтобы быть окошечным, а Console, соответственно, консольным ;)

'
' This is a small demo program for PowerBASIC's Console Compiler that
' demonstrates Toggling between windowed mode and full screen mode, detecting
' full screen mode and modal MessageBox's popped up over top of the console
' window. Works on both Win9x and WinNT type platforms. Tested on Win2K and
' Win98.
'
' This program will poll every few seconds to make sure that it is being
' run in a Window rather than full screen. If the program finds that it is
' being run in full screen, it will toggle back to a window and then display
' a message box warning the user that it cannot be run in full screen mode.
'

 

#Dim All

 

#Include "Win32Api.Inc"

 

' Simple Center Text Function
Function Center(Text As String) As String
Local lt As Dword
lt = Len(Text)
lt = lt \ 2
Function = Space$(40-lt) & Text
End Function

 

' Toggle Console Screen between full screen and
' windowed modes.
Sub ToggleFullScreen(ByVal hWnd As Dword)

 

Local vers As OSVERSIONINFO

 

vers.dwOsVersionInfoSize = SizeOf(vers)
GetVersionEx vers

 

If vers.dwPlatformId = %VER_PLATFORM_WIN32_NT Then
SendMessage hWnd, %WM_SYSKEYDOWN, %VK_RETURN, &h20000000
Else
SendMessage hWnd, %WM_COMMAND, &hE00F, 0
End If

 

End Sub

 

' Return 1 if running in Full Screen Mode, 0 if not.
Function IsFullScreen(ByVal hWnd As Dword) As Dword

 

Local Rct As RECT

 

GetWindowRect hWnd, Rct

 

If Abs(Rct.nTop) > 2000 Then
If Abs(Rct.nLeft) > 2000 Then
Function = 1
End If
End If

 

End Function

 

Function PBMain

 

Local kbd As String
Local hWnd As Dword
Local tim As Dword

 

Console Screen 25, 80 ' For Windows XP/NT/2000
Console Name "FSC Main" ' set main title
Sleep 250 ' give it time to take effect
hWnd = FindWindow(ByVal %NULL, "FSC Main") ' get console window handle

 

If hWnd = 0 Then ' if no handle then exit the program
StdOut "Error Getting Console Window Handle!"
Exit Function
End If

 

If IsFullScreen(hWnd) Then ' see if we're in full screen mode
ToggleFullScreen hWnd ' if so toggle back to the windowed mode.
' pop a message box up over top of our window that must be clicked
' before the user can continue with the console window.
MessageBox hWnd, "Program Cannot Be Run Full Screen!","FSC: Error!", 16
End If

 

' ********** Draw a box for this demo ************

 

Cursor Off
Color 15, 1
Locate 1, 1
Print Space$(80);
Locate 1, 30
Print "Full Screen Mode Demo"
Color 14, 1
Locate 2, 1
Print "ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН"";
Locate 3, 1
Print "є є";
Locate 4, 1
Print "є є";
Locate 5, 1
Print "є є";
Locate 6, 1
Print "є є";
Locate 7, 1
Print "є є";
Locate 8, 1
Print "є є";
Locate 9, 1
Print "є є";
Locate 10, 1
Print "є є";
Locate 11, 1
Print "є є";
Locate 12, 1
Print "є є";
Locate 13, 1
Print "є є";
Locate 14, 1
Print "є є";
Locate 15, 1
Print "є є";
Locate 16, 1
Print "є є";
Locate 17, 1
Print "є є";
Locate 18, 1
Print "є є";
Locate 19, 1
Print "є є";
Locate 20, 1
Print "є є";
Locate 21, 1
Print "є є";
Locate 22, 1
Print "є є";
Locate 23, 1
Print "є є";
Locate 24, 1
Print "ИННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННј";
Color 15, 1

 

' ********** End of box ***************************

 


' Add commands to box
Locate 8, 2
Print Center("F1 - Command");

 

Locate 10, 2
Print Center("F2 - Command");

 

Locate 14, 2
Print Center("F5 - Exit Program");

 

' Process the commands in this loop

 

Do
Do
kbd = InKey$ ' scan keyboard
If Len(kbd) > 0 Then Exit Loop ' if we got anything process it
Sleep 5 ' give time slices back to OS
Incr tim ' increment our timer var
If tim > 500 Then ' if its greater then 500 then
If IsFullScreen(hWnd) Then ' see if we're still in a window
ToggleFullScreen hWnd ' if not, then toggle it back!
MessageBox hWnd, "Program Cannot Be Run Full Screen!", _
"FSC: Error!", 16
End If
tim = 0 ' reset timer count and start over
End If
Loop
Select Case kbd ' process input

Ответить

Номер ответа: 2
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #2
Добавлено: 19.03.04 17:33

Не уписалось...

      Select Case kbd                       ' process input         Case Chr$(0,59)  ' F1            ' F1 & F2 will pop a Modal MessageBox over top of the console            ' window which MUST be clicked before proceeding!            MessageBox hWnd, "F1 - Command Not Used!","FSC", _               %MB_ICONEXCLAMATION         Case Chr$(0,60)  ' F2            MessageBox hWnd, "F2 - Command Not Used!","FSC", _               %MB_ICONEXCLAMATION         Case Chr$(0,63)  ' F5    (End the program)            Exit Loop         Case Else            Beep      End Select   Loop    Color 7, 0   Cls   Cursor On End Function

Ответить

Номер ответа: 3
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #3
Добавлено: 19.03.04 17:35

мда... извиняюсь...

      Select Case kbd                       ' process input
Case Chr$(0,59) ' F1
' F1 & F2 will pop a Modal MessageBox over top of the console
' window which MUST be clicked before proceeding!
MessageBox hWnd, "F1 - Command Not Used!","FSC", _
%MB_ICONEXCLAMATION
Case Chr$(0,60) ' F2
MessageBox hWnd, "F2 - Command Not Used!","FSC", _
%MB_ICONEXCLAMATION
Case Chr$(0,63) ' F5 (End the program)
Exit Loop
Case Else
Beep
End Select
Loop

 

Color 7, 0
Cls
Cursor On

 

End Function

Ответить

Номер ответа: 4
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #4
Добавлено: 19.03.04 21:42

Всех у меня нет. Есть только PRINT и INPUT.

#Compile Exe

#Dim All

#Include "win32api.inc"

Sub CPRINT (s As String, bReturn As Long)

Dim h As Long

h = GetStdHandle(%STD_OUTPUT_HANDLE)

Dim n As Long

n = FreeFile

Open Handle h For Output As #n

If bReturn Then

Print #n, s

Else

Print #n, s;

End If

Close #n

End Sub

Sub CWAITFORENTER ()

Dim h As Long

h = GetStdHandle(%STD_INPUT_HANDLE)

Dim n As Long

n = FreeFile

Open Handle h For Input As #n

Dim S As String

Line Input #n, S

Close #n

End Sub

Function PbMain()

AllocConsole

CPRINT "Hello ",%FALSE:CPRINT "World",%TRUE

CPRINT "Следующая строка (Must Convert ANSI(1251) to OEM(866))",%FALSE

CWAITFORENTER

End Function

Ответить

Номер ответа: 5
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #5
Добавлено: 20.03.04 00:25

Лови ещё адреса:

===

http://www.powerbasic.com/support/forums/Forum7/HTML/001051.html

---

http://www.powerbasic.com/support/forums/Forum7/HTML/001052.html

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам