I、我定义了一个记录:
   type 
   Trea=reacord
   name:string;
   aa:int64;
   cc:array of String;[动态]
   end;
   然后定义一个数组:reaxxx ;array of Trea;(动态);re:Trea;
   请问:1、re怎么样传递给线程函数[A]的变量;2、reaxxx(动态)怎么样快速的 
   传递给线程函数[A]的变量。3、在数据大于2GB时又如何快速的传递给线程。
   [A]、CreateThread(lpThreadAttributes: Pointer;
       dwStackSize: DWORD; lpStartAddress: TFNThreadStartRoutine; 
       lpParameter: Pointer; dwCreationFlags: DWORD; var lpThreadId: 
       DWORD): THandle; stdcall;
    是如传递参数的[能否给一个实例]????????II、Listview 的显示方式为sReport(列表显示时),各项的顺序如何交换?如: 
    Items[1]与Items[2]位置的交换,Items[1]要变成Items[2],Items[2]要变成 
    Items[1] ,当选中多项时向下或向上的移动是如何实现的?
    Listview 项的移动能否给一个实例????????

解决方案 »

  1.   

    1,procedure ShowMyMessage;
    begin
      While True do
      begin
        Sleep(3000);
        MessageBox(0,'警告','警告',MB_OK);
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      h: THandle;
    begin
      CreateThread(nil,0,@ShowMyMessage,nil,0,h);
    end;listview,有个change的方法
      

  2.   

    myclass=class
     ...
    end;
    procedure abc(p:pointer);
    var
    a:myclass;
    begin
      a:=myclass(p);
      ...
    end;
    var
      myobject:myclass;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      h: THandle;
      id:dword;
    begin
      myobject:=myclass.create;
      h:=CreateThread(nil,0,@abc,pointer(myobject){传递参数指针},0,id);
      closehandle(h);
    end;
      

  3.   


    linx88(haozi):
       您好!
       第一个问题:在我的主机上编译过,但通不过。
    请教?????????????????
      

  4.   

    搞了,一会,终于搞出来了,
    大家看看吧Type TThreadParm=Packed Record
       SendArray:array of byte;
       flag:integer;
       ccc:string;
     End;
               PThreadParm=^TThreadParm;
    var
      Form1: TForm1;
       Parm:TThreadParm;
       PParm:PThreadParm=@Parm;
    implementation
    {$R *.dfm}procedure abc(TheParm:TThreadParm);
    begin
    if theparm.ccc ='aaa' then
    begin
     form1.ADOQuery1.open;
     //frmProgressBar.StopThread;
    end;
    end;procedure TForm1.Button3Click(Sender: TObject);
    var i:integer;
       thid:thandle;
    begin
     pparm.ccc:='aaa';
     //createthread(nil,0,@thread_fun,@str,0,ThID);
     BeginThread(nil,0,@abc,PParm,0,thid);
     //frmProgressBar.StartThread('正在打开数据设备利用数据.....');
     end;