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

Вниз

Передать строку через PostMessage   Найти похожие ветки 

 
Lucefer   (2006-01-26 11:33) [0]

Вопрос такой. Есть поток и приложение, мне из потока надо послать некое сообщение PostMessage(Application.MainForm.Handle, WM_USER+123, 0, 0); и при этом передать некую текстовую строку в основную программу. Как это сделать правильно?
Как вариант я могу выделить память по getmem, записать туда информацию, а потом как-то передать указатель на эту область памяти через параметры сообщения.


 
wal ©   (2006-01-26 11:36) [1]


> Есть поток и приложение
Поток в том же самом приложении? Если да, то

> Как вариант я могу выделить память по getmem, записать туда
> информацию, а потом как-то передать указатель на эту область
> памяти через параметры сообщения.
Только память потом освободить не забудь.


 
Digitman ©   (2006-01-26 11:37) [2]


> Как вариант я могу выделить память по getmem, записать туда
> информацию, а потом как-то передать указатель на эту область
> памяти через параметры сообщения


Ну так и сделай.

Не худший, надо сказать, способ.

Главное - контролировать время жизни инф-ции, ссылка на которую передается ..


 
Гавриил, архангел   (2006-01-26 11:40) [3]

Если в пределах одного приложения - то передавай в lParam указатель на строку.
Если приложения разные - то не WM_USER+123 а WM_COPYDATA.
Если строка не одна а целый блок то лучше использовать named pipes.


 
Leonid Troyanovsky ©   (2006-01-26 13:53) [4]


> Digitman ©   (26.01.06 11:37) [2]

> Не худший, надо сказать, способ.

> Главное - контролировать время жизни инф-ции, ссылка на
> которую передается ..


Способ c GetMem, скажем, не очень.

Ну, а для контроля времени жизни нужен не Post, а
SendMessage (.., WM_USER, 0, LParam(@s {:String})).
Т.е., принимающий делает с PString(msg.LParam)^,
все, что ему требуется.

--
Regards, LVT.



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

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

Наверх




Память: 0.47 MB
Время: 0.051 c
1-1137077035
DelphiLexx
2006-01-12 17:43
2006.02.26
TChart со стилем TPoint


2-1139154054
asd
2006-02-05 18:40
2006.02.26
Как показать окно предварительного просм. в компоненте frxReport1


2-1139773723
Непонятка
2006-02-12 22:48
2006.02.26
Как вызвать процедуру?


4-1134030477
SergeyRocker
2005-12-08 11:27
2006.02.26
Изменение настроек драйверов принтера


2-1139503424
Silver...
2006-02-09 19:43
2006.02.26
$I чтоб по всему Проекту видно было