графический режим Turbo Pascal в Windows XP
Из каких соображений сейчас надо использовать TP?
а ты что хотела...все в полне ожидаемо..
vmware и вперед =)
#define TEXT_MODE 0x03
void Set_Mode (int mode)
{
asm {mov AH, 0
mov AL, BYTE PTR mode
int 10h}
}
Set_Mode (VGA256) - устанавливает режим 320х200, где угодно =)
Set_Mode (TEXT_MODE) - обратно в текстовой.
если да, то в исходнике надо подключить:
#include <graphics.h>
и в дальнейшем использовать эту графбиблиотеку.
графический режим инициализировать так:
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "egavga.bgi")
(файл egavga.bgi должен находится в одной папке с компилируемым модулем)
И то, что прога будет запускаться из-под Винды, неважно, она все равно стартует VGA режим.
апд: тьфу, я ж написал для си, а не для паскаля
но в пасе примерно так же
кстати, Паскаль 6.0, в отличие от распространенных 5.5 и 7.0, имел какие-то проблемы с графическими библиотеками.
#define VGA256 0x13Низач0т. Здесь, вроде, писали, что BGI можно прокачать до VGA256, но это еще прокачивать нужно.
#define TEXT_MODE 0x03
void Set_Mode (int mode)
{
asm {mov AH, 0
mov AL, BYTE PTR mode
int 10h}
}
Set_Mode (VGA256) - устанавливает режим 320х200, где угодно =)
Set_Mode (TEXT_MODE) - обратно в текстовой.
Да ладно, сейчас проверил. Без дополнительных заморочек всё заработало под ХР.
Я говорю, что у меня сильное подозрение, будто аффтар треда хочет использовать BGI, но не говорит об этом прямо (а говорит косвенно: "Как определить видеорежим?", - имеется в виду вызов процедуры Graph.InitGraph с параметрами grDriver = grInit, grMode = 0, если я правильно помню идентификаторы). BGI в оригинальном виде (непроапгрейженном) не знает 256-цветного режима.
C:\BP\BIN>binobj
BIN to OBJ Converter Version 6.0 Copyright (c) 1987,1990 Borland International
Usage: BINOBJ <source[.BIN]> <destination[.OBJ]> <public name>
Examples: BINOBJ GOTH.CHR GOTH GothicFont
BINOBJ CGA.BGI CGADRV CGAdriver
BINOBJ XFILE XFILE ata
далее подключить внешнюю процедуру
и зарегать этот драйвер
он линкуется в ехе-шником и все работает
binobj egavga.bgi egavga.obj MySuperGraphDriver
далее в паскале
{$L egavga.obj}
procedure MySuperGraphDriver; external;
.......
RegisterBGIDriver(@MySuperGraphDriver);
{далее инициализация графики как обычно}
Оставить комментарий
freestyle
Хоть режь ты эту XP на части - не хочет в среде Turbo Pascal определять графический режим.Подскажите, если знаете как в среде TP под XP графику использовать.