Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как работать отдельно с старшими и младшими байтами Cardinal? [D6, WinXP]


Makhanev A.S. ©   (2003-02-06 23:04:00) 

В waveoutsetvolume есть параметр типа Cardinal.

Причём:
"The low-order word contains the left-channel volume setting, and the high-order word contains the right-channel setting"

Насколько я понял, необходимо работать раздельно с первыми 2-мя байтами и последними. К примеру, одновременно изменять значения этих групп байтов.

Как это сделать?


Makhanev A.S.   (2003-02-08 14:12:00) [1]

2All:
Спасибо большое за примеры. Жаль, что сам не додумался.

> Palladin © (06.02.03 23:12)

Интересен пример с использованием одной области памяти 2-мя типами данных. Теперь знаем директиву absolute.
> MBo © (06.02.03 23:19)
Отличный пример на работу булевских операторов. Большое спасибо.
> Anatoly Podgoretsky © (06.02.03 23:25)

Наиболее простой пример. Им и воспользовался. Спасибо.


Anatoly Podgoretsky   (2003-02-06 23:25:00) [2]

LongRec.Hi/Low


MBo   (2003-02-06 23:19:00) [3]

d:Cardinal;
изменить:
d:=(d and $FFFF0000) or newlowordvalue;
d:=(d and $0000FFFF) or (newhiwordvalue shl 16);
получить: LoWord, HiWord


Palladin   (2003-02-06 23:12:00) [4]

var
nCardinal:cardinal;
Words:array [0..1] of word absolute nCardinal;


Наверх

Титульная страница Поиск, карта сайта Написать письмо