ID:Array[1..10] of DWORD;
TArray:array[1..10] of THandle;While TArray[i]<>0 Do
  Begin
    SpeedButton1.Caption:='  ';
     MainHwd:=TArray[i];
    BeginThread(nil,0,@Startstd,nil,0,ID[i]);
    i:=i+1;
  End;Procedue Startstd();Stdcall;保存在另一个单元,需用到当前窗体的全局变量MainHwd,StartHwd内部使用局部变量Hwd接收MainHwd,内部仅使用和处理MainHwd。TArray数组中保存的是窗口句柄,实际中有两个非0的句柄,即要创建两个线程,为什么会只有最后一个匹配的窗口句柄(这里是TArray[2])有对应的线程?上面的代码在一个按钮点击事件中,当分开放在两个按钮单击事件中时又能正确执行.另外,本来写的Procedure为,Procedure Start(Hwd:THandle);Stdcall;但我不知道如何将Tarray[i]中的值传递过去。
试了下BeginThread(nil,0,@Startstd,@TArray[i],0,ID[i]);没反应。函数是对的,分开执行没有任何问题。新手,望指条明路。