Показать сообщение отдельно
Старый 20.03.2013, 15:47   #17
IgorOK
Мастер
 
Аватар для IgorOK
 
Регистрация: 26.10.2009
Сообщений: 1,194
Написано 615 полезных сообщений
(для 2,209 пользователей)
Ответ: ввод текста в ксорсе

Dim TextLine$(100)	; массив строк

Global LineIndex=0 ;индекс текущей строки в массиве
Global TextHeight=10 ;высота строки
Global Enter ;переменная равна 1 если был нажат Enter

FlushKeys()

Function UpdateInput(X, Y)
	Local Key=GetKey()
	
	Enter=False
	
	If Key	; Key>0

		If Key=13	;	enter
			LineIndex=LineIndex+1
			Enter=True
			
		Else If Key=8	;	backspace
			TextLine(LineIndex)=Left(TextLine(LineIndex), Len(TextLine(LineIndex))-1)
			
		Else If Key>=32 And Code=<126
			TextLine(LineIndex)=TextLine(LineIndex)+Chr(Key)
		EndIf
	EndIf
	
	For Index=0 To LineIndex
		Text X, Y+Index*TextHeight, TextLine(Index)
	Next
End Function

Graphics 1024, 768, 32, 1
SetBuffer BackBuffer()

While Not KeyHit(1)
	UpdateInput(100, 100)
	Flip
	Cls
Wend
Вот так примерно лучше сделать.

P.S. Ещё рекомендую ставить отступы в коде. Лишний раз Tab нажать не сложно, зато потом ошибки искать в разы легче.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ProGamer (21.03.2013)