IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> передача сообщений, delphi xe2
18192123
сообщение 19.07.2012 13:17
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Доброго времени суток!

Имеется два приложения (запускаются одновременно, условно их назову interf и mainprog). При наведении мыши на некоторый элемент приложения interf второму приложению отправляется сообщение.

type
PrMessage = record
flTHelper: boolean;
TextHelper: string;
end;
//..
serviceMessage: PrMessage;
//...
procedure TForm1.SendMessageToMainProgram;
var
MesData: tCOPYDATASTRUCT;
begin
MesData.lpData := @serviceMessage;
MesData.cbData := sizeof(serviceMessage);
SendMessageA(mainHwnd, WM_COPYDATA, 0, integer(@MesData));
end;

procedure TForm1.Image14MouseEnter(Sender: TObject);
begin
Rectangle19.Visible := true;
serviceMessage.flTHelper := true;
serviceMessage.TextHelper := 'подсказка 1';
SendMessageToMainProgram;
end;

procedure TForm1.Image14MouseLeave(Sender: TObject);
begin
Rectangle19.Visible := false;
serviceMessage.flTHelper := false;
SendMessageToMainProgram;
end;


В приложении mainprog переданное сообщение выводится в компонент JvStaticText.

procedure TForm1.GetMessages(var Msg: TWMCopyData);
var
mes: ^PrMessage;
begin
application.MainForm.WindowState := twindowstate(0);
mes := Msg.CopyDataStruct.lpData;

if mes.flTHelper then
FormHelper.JvStT.Caption := mes.TextHelper
else
FormHelper.JvStT.Caption := ' ';
end;



Проблема в том, что в JvStaticText в итоге ничего не отображается. Вместо заполнения Caption пробовала назначить другое действие (скрытие/отображение формы FormHelper), сработало, по-видимому флаг flTHelper нормально передается..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.06.2025 18:51
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"