1. 声明一个Record类
type MyData = record title:pchar; str:string; num:Integer ; end ; PMyData = ^MyData;
2. 线程函数像这样写
Function ThreadProc(Para:PMyData):integer;stdcall; begin result: = 0 ; Form1.Canvas.TextOut( 10 , 10 ,Format( ' %s,%s,%d ' ,[Para^.str,Para^.title,para^.num ])); end ;
3.写下传递过程呗
procedure TForm1.btnClick(Sender: TObject); var Ro:PMyData ; hThread: THandle; ThreadID: DWORD; begin getmem(p,sizeof(p)); // 分配内存 hThread: = 0 ; try Ro.title: = ' 我的自定义参数 ' ; // 数据分配 Ro.str: = ' 测试成功 ' ; Rp.num : = 100 ; hThread: = createthread( nil , 0 ,@ThreadProc,Ro, 0 ,ThreadID); finally if hThread <> 0 then closehandle(hThread); if Ro <> nil then freemem(Ro); end ; end ;
好了,这样就可以传递到自己的参数了,如下图: