//先写了 TEdit 的 函数
 
procedure TCanParaSetForm.FunctioCodeEditKeyPress(Sender: TObject;
  var Key: Char);
  var i :Integer;
begin
if Key = #13 then
  begin
 // i:= StrToInt(LeftStr(FunctioCodeEdit.Text,2));
  i:= StrToInt(LeftStr(TEdit(Sender).Text,2));
  m_Comm60h_Record.m_FunctionCode:=(i div 10*16)+i mod 10;
  end;
end;//然后在 
procedure TCanParaSetForm.FormCreate(Sender: TObject);
中调用这个函数
///        FunctioCodeEditKeyPress((TObject)FunctioCodeEdit,#13);
        FunctioCodeEditKeyPress(TObject(FunctioCodeEdit),#13);
总是出错 
[Error] CanParaSetUnit.pas(261): Types of actual and formal var parameters must be identical为什么???
请教各位了!!

解决方案 »

  1.   

    Sender调用者对象的指针,哪个对象调用传哪个对象的指针进去。
    procedure TCanParaSetForm.FormCreate(Sender: TObject); 
    var
      key : char;
    begin
      key := #13;
      FunctioCodeEditKeyPress(Self,key);
      

  2.   

    我是 在   
    procedure TCanParaSetForm.FormCreate(Sender: TObject); 调用
    procedure TCanParaSetForm.FunctioCodeEditKeyPress(Sender: TObject; 
      var Key: Char); 写成
      FunctioCodeEditKeyPress(Sender,#13);
    要出错?????
      

  3.   

    当然要出错。第2个参数是var是传址。不能传常量进去。要传变量。
      

  4.   

    是 key 出了问题
    把 用key 就好了,
    谢谢  pathletboy 
      

  5.   


            FunctioCodeEditKeyPress(TObject(FunctioCodeEdit),key);也能成功,可能用这个更好
      

  6.   


    procedure TCanParaSetForm.FormCreate(Sender: TObject); 
    中调用FunctioCodeEditKeyPress(Self,key); 
    或出错,
    不知 self 可能代表是 整个类  TCanParaSetForm??
    但是 dephi 好像 看不到 这个指针数据???c语言可以看到 指针数据 和内存,dephi 有没有办法看到????
      

  7.   

    self代表当前类的实例,通c中this