' Получение длины строки для номеров строк
sub SetLenghtNumbers()
	
	select case pObj.iStartRowInWindow + pObj.iHeightRows -2
			
		Case is < 100
			
			pObj.iLenghtNumbers = 2
			
		case is < 1000
			
			pObj.iLenghtNumbers = 3
			
		case is < 10000
			
			pObj.iLenghtNumbers = 4
			
		case is < 100000
			
			pObj.iLenghtNumbers = 5
			
		case else
			
			pObj.iLenghtNumbers = 6
			
	End Select
	
End Sub

' получение текущих значений высоты и ширины буфера консоли 
sub GetWHConsole()
	
	Dim As Integer w
	
	w = Width
	
	pObj.iHeightRows = HiWord(w)-1 ' на одну меньше , чтобы не было автоскроллинга
	
	pObj.iWidthSimbols = LoWord(w)
	
End Sub

' проверка изменения размеров консоли
sub CheckSizeConsole()
	
	GetWHConsole() ' получить кол-во строк и столбцов консоли
	
	' если размеры изменились
	if pObj.iPrevHeightConsole <> pObj.iHeightRows orelse pObj.iPrevWidthConsole <> pObj.iWidthSimbols then
		
		' сохраним текущую позицию в редакторе
		dim as long iPos = GetPosition()
		
		' установим кол-во строк и столбцов
		Width pObj.iHeightRows , pObj.iWidthSimbols
		
		' сохраним  новые значния строк и столбцов
		pObj.iPrevHeightConsole = pObj.iHeightRows		
		pObj.iPrevWidthConsole = pObj.iWidthSimbols
		
		#ifdef __UNIX_SYSTEM__
			' сбрасываем параметры консоли
			printf !"\027[3J"
			fflush(stdout)
		#endif
		
		' установим позицию из сохраненной
		SetPosition(iPos)
		
		bRepaintAnyway = 1 ' обновим весь экран
		
		' рисуем все строки
		DrawRowsEditor()
		
	EndIf
	
End Sub