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

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

SendMessage и Double [D7, Win2k]


morik ©   (2005-12-20 16:01:00) 

Как передать в SendMessage параметр WParam значения типа Double?


Leonid Troyanovsky   (2005-12-21 10:51:00) [1]


> Digitman ©   (21.12.05 08:47) [10]

> TRec = packed record
>  case Byte of
>    0: (Dbl: Double);
>    1: (Lo, Hi: Cardinal);
>  end;

> SendMessage(Handle, WM_MYMESSAGE, Rec.Hi, Rec.Lo);


Lo, Hi - поменять местами.
Вообще, IMHO, понятней так:

1: (wparam: WParam; lparam: LParam);

--
Regards, LVT.


Digitman   (2005-12-21 08:47:00) [2]


> morik ©   (20.12.05 16:35) [5]


TRec = packed record
 case Byte of
   0: (Dbl: Double);
   1: (Lo, Hi: Cardinal);
 end;

..

var Rec: TRec;
..
Rec.Dbl := ...;
SendMessage(Handle, WM_MYMESSAGE, Rec.Hi, Rec.Lo);

...


Lamer@fools.ua   (2005-12-20 20:27:00) [3]

>> begin...end ©   (20.12.05 16:53) [7]

А ещё лучше LongInt.


morik   (2005-12-20 17:37:00) [4]

Пасиба


begin...end   (2005-12-20 16:53:00) [5]

Только лучше будет не Integer, а Cardinal.


begin...end   (2005-12-20 16:52:00) [6]

> morik ©   (20.12.05 16:35) [5]

type
 TDouble = array [1..2] of Integer;
var
 D: Double;

// Посылка

SendMessage(Handle, WM_MYMESSAGE, TDouble(D)[1], TDouble(D)[2]);

// Приём

TDouble(D)[1] := wParam;
TDouble(D)[2] := lParam;


morik   (2005-12-20 16:35:00) [7]

2 Digitman И сразу вопрос как взять старшое дв. слово и младшое и как это все назад в квадрослово?


DmitRij_K   (2005-12-20 16:19:00) [8]

все нашел
WM_COPYDATA


Dmitrij_K   (2005-12-20 16:11:00) [9]

сразу вопрос
а если надо передать например массив или строку, как тогда поступить?


Digitman   (2005-12-20 16:09:00) [10]

а если в чужую, то старшее дв.слово - в один параметр, а младшее - в другой.. на принимающей стороне собрать в квадрослово


Dmitrij_K   (2005-12-20 16:04:00) [11]

если в свою программу посылаешь, тогда через PDouble


Наверх

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