Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.25;
Скачать: CL | DM;

Вниз

Что означает "absolute", и почему он не работает?   Найти похожие ветки 

 
yuryzh ©   (2005-08-29 15:49) [40]

Этот пример взят из реального кода.
var
  DeviceMode : TDevMode absolute 0;
ChangeDisplaySettings(DeviceMode, 0)

Просто в оригинале эта функция описана как
LONG ChangeDisplaySettings(
 LPDEVMODE lpDevMode,  // graphics mode
 DWORD dwflags         // graphics mode options
);

а в Delphi
function ChangeDisplaySettings(
 var lpDevMode: TDeviceMode;
 dwFlags: DWORD): Longint; stdcall;

и для передачи var параметра, адрес которого есть nil использовалась конструкция
DeviceMode : TDevMode absolute 0;


 
Джо ©   (2005-08-29 15:53) [41]

Вот пример из модуля MxArrays.pas:

function CmpWord(var item1, item2): Integer;
var
 w1: word absolute item1;
 w2: word absolute item2;
 i1, i2: Integer;
begin
 ...


 
Игорь Шевченко ©   (2005-08-29 16:08) [42]

yuryzh ©   (29.08.05 15:49) [40]


> ChangeDisplaySettings(DeviceMode, 0)


ChangeDisplaySettings(PDeviceMode(nil)^, 0)


 
Германн ©   (2005-08-30 01:10) [43]

2 Anatoly Podgoretsky ©   (29.08.05 09:06) [39]

 >Юрий Зотов ©   (29.08.05 05:16) [34]
>Что реализуется также с помощью вариантных записей или что еще >лучше приведения. Ценность absolute была высока в программах >реального режима, для указания абсолютных аппаратных ресурсов, >но часто использовалась не совсем по делу. И перенос этой >технологии на Дельфи не обоснован, если не сказать прямо, как >правило приносящий больше вреда, чем реальной пользы.

Имхо, Вы, Анатолий, правы по сути.
Но с истормческой точки зрения - не совсем.
А уж для тех, кто вроде меня имел дело с иными PASCAL"ями, нежели TP, так уж и вовсе не правы!
Некоторые компиляторы, с которыми мне пришдось работать не понимали ни "вариантные записи", ни "приведение типов"!

Но поскольку тут форум Дельфи, мои замечания, имхо offtopic.



Страницы: 1 2 вся ветка

Текущий архив: 2005.09.25;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.059 c
5-1099875575
AZ
2004-11-08 03:59
2005.09.25
Сохранение свойства типа array - линкер не пущает


1-1125393380
ORMADA
2005-08-30 13:16
2005.09.25
как работать с CVS через delphi


2-1124096978
СержК
2005-08-15 13:09
2005.09.25
Нужно что-то типа: "TimeToStr" ...


1-1125470477
tyo
2005-08-31 10:41
2005.09.25
Stream read error


14-1124200197
Piter
2005-08-16 17:49
2005.09.25
LJ дневник человека, служащего в армии :)