![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте! Вопрос простой, но сложно сформулировать, чтобы найти ответ. Есть процедура
Код:
procedure SomeProc (msg: TMessage); message WM_MYMESSAGE Сообщение посылается из другой программы, поэтому важно, чтобы WM_MYMESSAGE был уникальным. С другой стороны, WM_MYMESSAGE должен быть константой. Научите, пожалуйста, как средствами Delphi сгенерировать GUID, чтобы записать его в константу? |
#2
|
|||
|
|||
![]() Вообще-то для такого существует специальная функция - RegisterWindowMessage. Отлов этого сообщения делается через общий обработчик компонента, если не ошибаюсь, TApplicationEvents.
Как работает данная функция. При первом вызове она регистрирует новое сообщение в системе с указанныс именем. При последующем вызовом с тем же именем она вернет ID этого зарегистрированного сообщения. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
T232006 (21.03.2024)
|
#3
|
||||
|
||||
![]() Вы можете сгенерировать 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, Сегодня в 09:28. |