Вопросы о графической библиотеке FreeBASIC:
Вопросы о графической библиотеке FreeBASIC
Как линковать/использовать  Gfxlib?
Gfxlib "встроена" в язык, не требуется никаких включаемых 
	.bi файлов. FreeBASIC автоматически определяет использование Gfxlib , когда 
	вы вызываете функцию 
Screen или 
ScreenRes. 
	Таким образом, для того чтобы использовать Gfxlib графические команды, вам 
	просто нужно инициализировать экран.
Файл заголовка 
fbgfx.bi доступен для включения 
	по вашей программе, и содержит константы и определения типов, которые могут 
	оказаться полезными для вас при использовании Gfxlib. Совсем не обязательно 
	подключать его для того, чтобы использовать Gfxlib; заголовок доступен 
	только в качестве вспомогательного средства. Он содержит константы флагов, 
	которые могут передаваться в 
Screen и 
ScreenRes, 
	а также определения 
Клавиатурных сканкодов и
	
структуру fb.Image 
	буфера.
В FreeBASIC, изображения могут использоваться как массивы 
	(как, например, в QB) или управляться при помощи указателей. В то же время, 
	данные изображений, находятся в одном блоке. Блок состоит из заголовка 
	данных изображения. Заголовок может быть двух видов (старый стиль и новый 
	стиль). Он определяет формат данных изображений, для получения более 
	подробной информации см. GfxInternalFormats.
К началу страницы
Почему при использовании функций Bsave/Bload программа 
	вылетает?
Bsave/Bload могут быть использованы только для загрузки и 
	сохранения графических экранов и графических буферов в FreeBASIC. Они не 
	могут быть использованы для сохранения экрана в текстовом режиме. Чтобы 
	загрузить и сохранить массивы читайте 
	подсказку для использования файловых Get/Put .
Каждый байт в атрибуте цвета содержит красный, зеленый, 
	синий и альфа компоненты. В следующем примере показано, как извлечь 
	составные значения из 16, 24 или 32 битного атрибута цвета.
#define rgb_a(x) ((x) Shr 24)
#define rgb_r(x) ((x) Shr 16 And 255)
#define rgb_g(x) ((x) Shr 8 And 255)
#define rgb_b(x) ((x) And 255)
Dim As UInteger c
Dim As Integer x, y
Dim As UByte red, green, blue, Alpha
'' Предполагается, что ранее в коде вы установили 16 , 24 
или 32 битный режим экрана
c = Point(x, y)
red = rgb_r(c)
green = rgb_g(c)
blue = rgb_b(c)
Alpha = rgb_a(c)
	К началу страницы
Как получить событие клика по кнопке "x" в заголовке окна 
	для закрытия приложения?
В оконном режиме графики вы можете вы можете проверить 
	нажата ли кнопка Х (закрыть) в заголовке окна при помощи функции 
Inkey, 
	сравнив результат функции со значением Chr( 255 ) + "k" (по сути это тоже, 
	что и Alt+F4). Это относится к платформам Win32 и Linux. Что касается DOS
,
	то там нет кнопки "X" в заголовке окна.
	Маленький пример:
'' Пример закрытия окна по нажатию "X" кнопки , Win32 и Linux только
Dim As String key
Screen 13
Do
  Print "Click the 'x' to close this app."
  Sleep
  key = Inkey
Loop Until key = Chr(27) Or key = Chr(255, 107) 'escape или x-кнопка 
в заголовке окна
	К началу страницы
Почему не получается запускать Screen 13 или 14 в 
	полноэкранном режиме?
Это - ограничение аппаратных средств/драйвера (Win32 и 
	Linux только?). В наше время видеокарты не осуществляют такие способы для 
	графики с низким разрешением. Если требуется полный экран, вы должны 
	переписать инициализацию экрана, по крайней мере с режимом 17 или 18 или 
	разрешением 640x480 и выше для того, чтобы современные аппаратные средства 
	смогли обращаться с ним.
К началу страницы
Почему Imagecreate возвращает "ПУСТОЙ" указатель?
ImageCreate создает 
	буфер изображения, который соответствует пиксельному формату текущего 
	экрана, и он не может создать его, если еще не установлен один из режимов 
	экрана с помощью 
Screen или 
	ScreenRes.
 В результате функция возвращает 
	нулевой (пустой) указатель, при обращении к которому программа по понятным 
	причинам вылетает.
	Как итог, вам попросту нужно вызвать функцию 
Screen 
	или 
ScreenRes для использования
	
ImageCreate.
 К началу страницы
См. также