窗体传递参数给有BPL包创建的MDI子窗口中的参数

procedure Tfrm_fun_01_gpsdata_newobj.Button2Click(Sender: TObject);
var
  cdds: TCopyDataStruct; // 消息体
  hd: THandle;
begin

  cdds.dwData := 0; // dwdata初始化
  cdds.cbData := length(Edit1.Text) + 1; // cbData定义消息体的字符长度,+1个长度,是为了存储结束符
  cdds.lpData := pchar(Edit1.Text); // 告诉消息体,LPDATA的指针指向memo1.Text存储位置的指针

  // fHwnd:=
  hd := FindWindow('Tform3', nil); //先查找主窗体句柄
  hd := FindWindowEx(hd, 0, 'MDIClient', nil);//根据主窗口句柄查找MDI子窗口容器
  hd := FindWindowEx(hd, 0, 'Tfrm_fun_01_gpsdata_main', nil);//根据MDI子窗口容器句柄查找子窗口
  if hd <> 0 then
    SendMessage(hd, WM_COPYDATA, 0, LongWord(@cdds)) // 发送消息体
  else
    ShowMessage('目标窗口没找到!');
  // showmessage(inttostr(integer(fardizhi)));
end;
----------------------------------------
type
  Tfrm_fun_01_gpsdata_main = class(TForm)
    top: TPanel;
    right: TPanel;
    bottom: TPanel;
    RadioGroup1: TRadioGroup;
    Splitter1: TSplitter;
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  。。。。。
    procedure Mymessage(Var Msg: TMessage); Message WM_COPYDATA; // 定义函数接收过程

  end;
procedure Tfrm_fun_01_gpsdata_main.Mymessage(var Msg: TMessage); // 定义接收消息的具体过程
var
  cdds: TcopyDataStruct;
begin
  if Msg.Msg = WM_COPYDATA then
  begin
    cdds := PcopyDataStruct(Msg.LParam)^;
    if cdds.dwData = 0 then
    begin
      Edit1.Text := '0' + (Pchar(cdds.lpData));
    end;
    if cdds.dwData = 1 then
    begin
      Edit1.Text := '1' + (Pchar(cdds.lpData));
    end;
    if cdds.dwData = 2 then
    begin
      Edit1.Text := '2' + (Pchar(cdds.lpData));
    end;
    if cdds.dwData = 3000 then
    begin
      Edit1.Text := '3000' + (Pchar(cdds.lpData));
    end;
  end;
end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值