IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> SetVisualPage, SetActivePage, Не работает в FreePascal!?
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Начал работать над курсовой работой - уперся в невозможность работы с несколькими страницами.
При ввыполнении программы все отображается на одной, сабжевые функции просто игнорируются.
Кто что подскажет?
ЗЫ: Сама курсовая - игра "Жизнь". Смена страниц нужна для корректной и быстрой прорисовки
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Тоже сталкивался с этой проблемой.
Мне кажется разработчики просто "забили" на поддержку устаревших графических возможностей.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Разработчик
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
Кто что подскажет?
Использовать WinGraph вместо стандартного модуля Graph. Ибо в стандартном происходит вот что:

Цитата(fpc-2.6.0.source\fpc-2.6.0\packages\graph\src\win32\graph.pp)
{ multipage support could be done by using more than one background bitmap }
procedure SetVisualWin32GUI(page: word);
begin
end;

procedure SetActiveWin32GUI(page: word);
begin
end;

// ...

procedure SetupWin32GUIDefault;
begin
mode.DirectPutPixel:={$ifdef fpc}@{$endif}DirectPutPixel16Win32GUI;
mode.PutPixel:={$ifdef fpc}@{$endif}PutPixel16Win32GUI;
mode.GetPixel:={$ifdef fpc}@{$endif}GetPixel16Win32GUI;
mode.HLine := {$ifdef fpc}@{$endif}HLine16Win32GUI;
mode.SetRGBPalette := {$ifdef fpc}@{$endif}SetRGBPaletteWin32GUI;
mode.GetRGBPalette := {$ifdef fpc}@{$endif}GetRGBPaletteWin32GUI;

// Вот эти 2 строки
mode.SetVisualPage := {$ifdef fpc}@{$endif}SetVisualWin32GUI;
mode.SetActivePage := {$ifdef fpc}@{$endif}SetActiveWin32GUI;

mode.InitMode := {$ifdef fpc}@{$endif}InitWin32GUI16colors;
mode.OuttextXY:={$ifdef fpc}@{$endif}OuttextXYWin32GUI;
mode.VLine := {$ifdef fpc}@{$endif}VLine16Win32GUI;
// mode.circle := {$ifdef fpc}@{$endif}Circle16Win32GUI;
// doesn't work yet
// mode.Line:={$ifdef fpc}@{$endif}LineWin32GUI;
end;

, т.е., процедуры - пустые. Равно как и в DefaultHooks (файл graph.inc) - тоже устанавливаются адреса пустых процедур...

Сообщение отредактировано: IUnknown -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Н-да. Проблема. И как-то вкрутить из старых версий нельзя(есть ли оно вообще в старых версиях)?

Ладно, благодарю за помощь. Буду переделывать курсовую под WinGraph
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Разработчик
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
И как-то вкрутить из старых версий нельзя(есть ли оно вообще в старых версиях)?
Исходники версий ниже 2.2.2 на официальном FTP найти проблематично, но у меня есть на диске исходники 2.2.0 (версия компилятора от 2008 года, а сами INC-файлы датированы вообще мартом 2007). Так вот и там тоже SetActivePage/SetVisualPage - пустышки.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 18.01.2018 8:51
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"