var
  FormMsg:TForm3;
begin
//
    if assigned(FormMsg) then
    begin
      FormMsg:=TForm3.Create(Self);
      FormMsg.MsgParm.s_PayId := IntToStr(FormMsg.Handle);
      FormMsg.MsgParm.FormHand:= FormMsg.Handle;
      FormMsg.Show;
    end;
end;在Form3里这样可以正确取到值 Form3头部
unit Unit3;interfaceuses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.ComCtrls;type TMsginfo = record
  s_Op:string;
  FormHand:Integer;
  ItemId:Integer;
end;
PMsginfo = ^TMsginfo;type
  TForm3 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Splitter1: TSplitter;
    Button1: TButton;
    StatusBar1: TStatusBar;
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    MsgParm:TMsginfo;
  end;var
  Form3: TForm3;
  MsgThread :Integer;
  b_MsgComplent:Boolean;
implementationprocedure TForm3.Button1Click(Sender: TObject);
var
  i:string;
begin
  i := MsgParm.s_PayId;
end;下面的线程我要怎么取值,请指点一下
procedure TForm3.FormShow(Sender: TObject);
var
  ThreadID:Cardinal;
begin
  //MsgParm.FormHand:= Self;
  MsgParm.s_Op := 'Open'; //这里都能正确取值
  b_MsgComplent:= True;
  //MsgDo(1);
  MsgThread:=CreateThread(nil,0,@MsgDo,@MsgParm,0,ThreadID);
end;function MsgDo(P:Pointer):Integer;
var
  payid:string;
begin
    payid :=PMsgParm(P)^.s_PayId;//这样取不到值了
    payid :=MsgParm.s_PayId;//这样取不到值了
    //如果不是动态创建的
    payid :=Form3.MsgParm.s_PayId;//这样也取不到end;这个线程中我要如何取值,传值