总是忘记消息传递记录型指针,那就留个地,记住一下unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;Const
WM_TEST=WM_USER+100;type
PTest=^TTest;
TTest=record
ID:Integer;
Name:String
end;
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
protected
procedure NewMethod(var Message: TMessage); message WM_TEST;
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
Form2.Show;
//Form2.Free;
end;procedure TForm1.NewMethod(var Message: TMessage);
begin
Edit1.Text :=PTest(Message.WParam)^.Name;
Dispose(PTest(Message.WParam));
end;
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,Unit1, StdCtrls;type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
var
P:PTest;
begin
New(P);
P^.ID:=1;
P^.Name:='guo';
PostMessage(Form1.Handle,WM_TEST,Integer(p),0);
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;Const
WM_TEST=WM_USER+100;type
PTest=^TTest;
TTest=record
ID:Integer;
Name:String
end;
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
protected
procedure NewMethod(var Message: TMessage); message WM_TEST;
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
Form2.Show;
//Form2.Free;
end;procedure TForm1.NewMethod(var Message: TMessage);
begin
Edit1.Text :=PTest(Message.WParam)^.Name;
Dispose(PTest(Message.WParam));
end;
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,Unit1, StdCtrls;type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
var
P:PTest;
begin
New(P);
P^.ID:=1;
P^.Name:='guo';
PostMessage(Form1.Handle,WM_TEST,Integer(p),0);
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货