Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2010, 19:55   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию MakePoints своими руками

http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx

В Windows.h такого не нашел ни в Delphi ни в Lazarus. Придется лепить своими руками, но боюсь ошибиться с цифрой в Shr. Подмогнете?

Кажется вот так, знающие люди, подскажите, правильно ли?

Код:
Function MakePoint(Param : DWord): TPoint;
Begin
 Result.X := Param And $FFFF;
 Result.Y := Param Shr 16;
End;
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 02.12.2010, 20:12   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Вроде верно, x - младшее слово, y - старшее.

p.s. я не помню, но если sizeof(TPoint) == 4 байта, то тогда вообще можно сделать так result := ^((TPoint^)@Param); дай бог памяти по дельфи, ну думаю ясна идея

Последний раз редактировалось BOBAH13; 02.12.2010 в 20:14.
BOBAH13 вне форума Ответить с цитированием
Старый 02.12.2010, 20:13   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Спасибо.....
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 03.12.2010, 01:01   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

JwaWinGDI.pas:

Код:
function MAKEPOINTS(l: DWORD): POINTS;
begin
  Result.x := LOWORD(l);
  Result.y := HIWORD(l);  
end;
Рекомендую. Заголовочники от Джедаев.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
firewall своими руками badfilin Общие вопросы C/C++ 0 24.01.2010 22:14
Ноутбук... своими руками mihali4 Компьютерное железо 13 17.07.2009 19:50
Проигрыватель своими руками Prisian Мультимедиа в Delphi 2 01.09.2008 16:09
StrechDIBits своими руками BOBAH13 Win Api 3 22.07.2008 14:52
панель задач своими руками RammFan Win Api 8 03.06.2007 16:38