DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: sprblck
今日帖子: 11
在线用户: 21
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 ltshdp (禁卫军) ▲▲▲△△ -
普通会员
2017/9/21 19:56:52
标题:
Multi-Device Application 在win32下不能接收消息 浏览:1396
加入我的收藏
楼主: 同样的代码在VCL下就可以接收自定义消息。
请问如何在Multi-Device Application下接收。
谢谢
Multi-Device Application 可以发。
----------------------------------------------
-
作者:
男 ltshdp (禁卫军) ▲▲▲△△ -
普通会员
2017/9/21 20:12:22
1楼:   procedure  wmme(var message:TMessage);message My_message;
   procedure DefaultHandler(var Message); override; 
前两种没有反应
   procedure WndProc(var Message: TMessage); override;  
这种提示[dcc32 Error] Unit1.pas(17): E2137 Method 'WndProc' not found in base class
----------------------------------------------
-
作者:
男 wangyunyong (新秀) ★☆☆☆☆ -
盒子活跃会员
2017/9/22 7:22:15
2楼: Multi-Device Application已经不支持这种消息传递机制了。
procedure  wmme(var message:TMessage);message My_message;这种方式是windows下特有的,而Multi-Device Application是跨平台的,所以肯定不支持。
----------------------------------------------
-
作者:
男 wanlgrm (么么) ▲▲▲▲▲ -
普通会员
2017/9/22 8:46:32
3楼: 消息机制是windows系统特有的,你见过Linux有消息?
----------------------------------------------
-只会复制粘贴!
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2017/9/22 9:12:58
4楼: fmx有一套自己的消息处理机制。类似这样:


unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Presentation.Messages,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    FMessageSender: TMessageSender;
  public
    { Public declarations }
    procedure DefaultHandler(var Message); override;
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
begin
  FMessageSender.SendMessage(10, 'aaa');
end;

procedure TForm1.DefaultHandler(var Message);
begin
  inherited;
  ShowMessage(TDispatchMessage(Message).MsgID.ToString());
  ShowMessage(TDispatchMessageWithValue<String>(Message).Value);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FMessageSender := TMessageSender.Create();
  FMessageSender.Receiver := Self;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FMessageSender.DisposeOf();
end;

end.
----------------------------------------------
--
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2017/9/22 14:10:36
5楼: fmx 的 窗体其实是可以进行消息处理的,前提是你能找在哪里写代码。
FMX 官方源码,你要是认真看过,就不会这种低级问题了。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 janker (janker) ★☆☆☆☆ -
盒子活跃会员
2017/9/22 17:51:02
6楼: fmx下,处理消息很方便的,可以在2个实例间传递消息,参考System.Messaging,也支持VCL下的,就是发布/订阅模式。
以下是帮助的内容:

unit Unit1;
 
interface
 
uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
  System.Messaging, FMX.Edit;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form2: TForm1;
 
implementation
 
{$R *.fmx}
 
procedure TForm1.Button1Click(Sender: TObject);
var
  MessageManager: TMessageManager;
  Message: TMessage;
begin
  MessageManager := TMessageManager.DefaultManager;
  Message := TMessage<UnicodeString>.Create(Edit1.Text);
  MessageManager.SendMessage(Sender, Message, True);
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var
  SubscriptionId: Integer;
  MessageManager: TMessageManager;
begin
  MessageManager := TMessageManager.DefaultManager;
  SubscriptionId := MessageManager.SubscribeToMessage(TMessage<UnicodeString>, procedure(const Sender: TObject; const M: TMessage)
  begin
    ShowMessage((M as TMessage<UnicodeString>).Value);
  end);
end;
 
end.
----------------------------------------------
-
作者:
男 ltshdp (禁卫军) ▲▲▲△△ -
普通会员
2017/9/22 20:45:29
7楼: 谢谢!
----------------------------------------------
-
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2017/9/25 13:26:53
8楼: 我实践了一下,直接上demo,您自己看着用。上面2位的代码都用了。
此帖子包含附件:gaoyong_gy_2017925132653.rar 大小:8.3K
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2017/9/25 13:27:19
9楼: Delphi手机通用界面设计源码低价出售(跨平台:Windows,mac,ios,android都可以用),让你一步跨入主流软件界面境界。购买后即刻使用,哪里需要拷哪里。买过的都说好。2年的设计经验,让你即刻掌握。提供热腾腾的源码。详情:
http://blog.163.com/you888@188/blog/static/6723961920159271412582 ;;


购买地址:https://item.taobao.com/item.htm?id=522707335329 ;


请拍下后旺旺留言,一定要留下QQ号。谢谢。


内容持续增加中,欢迎了解,欢迎购买;

没有使用任何第三方控件,本demo提供所有源码,毫无保留;

购买后加入一个售后群,会有不定期更新;

绝对物超所值;

大部分都可以窗口级引用,再稍微修改就变成你的了;

快速界面设计素材,非它莫属啊;

全是delphi原生控件实现,您基本不用担心升级问题。

QQ120180714联系我。
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
男 ltshdp (禁卫军) ▲▲▲△△ -
普通会员
2017/9/29 20:55:45
10楼: 这个搞得成。亲试
http://tieba.baidu.com/p/1652569885
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行78.125毫秒 RSS