Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.03.2024, 14:16
T232006 T232006 вне форума
Новичок
 
Регистрация: 17.11.2022
Сообщения: 52
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию Как сгенерировать случайный message для события?

Здравствуйте! Вопрос простой, но сложно сформулировать, чтобы найти ответ. Есть процедура
Код:
procedure SomeProc (msg: TMessage); message WM_MYMESSAGE
.
Сообщение посылается из другой программы, поэтому важно, чтобы WM_MYMESSAGE был уникальным. С другой стороны, WM_MYMESSAGE должен быть константой. Научите, пожалуйста, как средствами Delphi сгенерировать GUID, чтобы записать его в константу?
Ответить с цитированием
  #2  
Старый 21.03.2024, 21:18
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,064
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вообще-то для такого существует специальная функция - RegisterWindowMessage. Отлов этого сообщения делается через общий обработчик компонента, если не ошибаюсь, TApplicationEvents.

Как работает данная функция.
При первом вызове она регистрирует новое сообщение в системе с указанныс именем. При последующем вызовом с тем же именем она вернет ID этого зарегистрированного сообщения.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
T232006 (21.03.2024)
  #3  
Старый 05.09.2024, 02:30
Аватар для baitymauu
baitymauu baitymauu вне форума
Прохожий
 
Регистрация: 05.09.2024
Сообщения: 2
Версия Delphi: baity 6
Репутация: 10
По умолчанию

Вы можете сгенерировать GUID в Delphi с помощью функции CreateGUID. Вот простой пример:

Код:
uses
  SysUtils, Windows;

const
  WM_MYMESSAGE: Cardinal = 0; // Inicializar con 0 o cualquier valor temporal

var
  MyGUID: TGUID;

begin
  CreateGUID(MyGUID);
  WM_MYMESSAGE := DWORD(MyGUID.Data1); // Puedes usar Data1 como identificador único

  // Usa WM_MYMESSAGE en tu procedimiento
end;
Админ: Пользуемся тегами при оформлении кода!

Последний раз редактировалось Admin, 05.09.2024 в 09:28.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:18.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter