当前有一个结构需要传给接受消息方发送如下:var
   m:TStringList;
begin   
   ...
   //ReadData是自定义的消息类型
   //当前我们将地址转成整形
   SendMessage(frm.Handle,ReadData,0,LPRAM(@m);
end;
接受如下:var
   m:^TStringList;
   x:Pointer;
begin   x:=msg.LPram; 
   //编译提示:Incompatible types: 'Integer' and 'Pointer'
   
   m:=TStringList(msg.LPram);
   //编译提示:Incompatible types: 'TStringList' and 'Pointer'
end;   如何解决该问题?

解决方案 »

  1.   

    在发送方传以Dword类型的lparam参数,在接受方用pointer强制转换为地址指针
      

  2.   

    当前有一个结构需要传给接受消息方  
     
    发送如下:  
     
    var  
         m:TStringList;  
    begin        
         ...  
         //ReadData是自定义的消息类型  
         //当前我们将地址转成整形  
         SendMessage(frm.Handle,ReadData,0,LPRAM(@m);  
    end;  
     
     
    接受如下:  
     
    var  
         m:^TStringList;  
         x:Pointer;  
    begin  
     
         x:=Pointer(msg.LPram);    
           
         m:=x     //后面可以自由使用 m 了,但不要使用 m.Free();      end;        -问题解决-
     
    如何解决该问题?