Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];

Вниз

Что означает "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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.042 c
4-1122915194
Adil
2005-08-01 20:53
2005.09.25
Размер SysTray-a


6-1117537091
SanG
2005-05-31 14:58
2005.09.25
Есть ли подтверждение получения у сокетов ?


1-1125936347
lock
2005-09-05 20:05
2005.09.25
спираль


14-1125452640
Progamer
2005-08-31 05:44
2005.09.25
подозрительный сервак закачки музыки


3-1123585717
Alex--
2005-08-09 15:08
2005.09.25
Провайдер Interbase для ADO





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский