掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
[FMX]ユーザー定義のWindowsメッセージを受信するには? (ID:48149)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になっています。 今、行いたい事は FMXアプリケーションで、WM_USER+n ユーザーメッセージ番号を定義して 自フォームからPostMessageを行い、自フォームで受信して、それに応じた処理を行いないたいのですが、 VCL(Windows)とは勝手が違う様で、以下のコードでは受信できません。 [コード] unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Edit, FMX.Controls.Presentation, FMX.StdCtrls, FMX.Platform.Win, Winapi.Windows, Winapi.Messages; const WM_HOGEHOGE = WM_USER + 100; type TForm1 = class(TForm) Button1 : TButton; Edit1 : TEdit; procedure Button1Click( Sender : TObject ); procedure Message_WM_HOGEHOGE( var Msg : TMessage ); Message WM_HOGEHOGE; private { private 宣言 } public { public 宣言 } end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.Button1Click( Sender : TObject ); var WindowHandle : TWinWindowHandle; begin WindowHandle := WindowHandleToPlatform( Form1.Handle ); Winapi.Windows.PostMessage( WindowHandle.Wnd, WM_HOGEHOGE, WPARAM( 0 ), LPARAM( 0 ) ); end; procedure TForm1.Message_WM_HOGEHOGE( var Msg : TMessage ); begin Form1.Edit1.Text := 'HOGEHOGE受信'; end; end. ウインドウハンドルを取得する WindowHandleToPlatform処理 で WindowHandle を取得し、 WindowHandle.Wnd には正しいウインドウハンドルが入っている事を確認しました。 しかし、エディットのTextプロパティに 'HOGEHOGE受信' を格納する所に ブレークポイントを張ってもブレークしてくれません。 メッセージをトラップするやり方が間違っているのか、 そもそもこの様なやり方が、FireMonkeyとして間違っているのかもわかりません。 FMXの本も少なく、Googleでも散々検索してみましたが良くわからず、 質問させて頂きました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.