一个向下转型的问题。
一般都要用  is 进行判断。比如:
 if obj is TCar then
   TCar(obj).函数问怎么传一个TOBJECT可以这样
TXXXX(OBJ). 有办法没有。 
进行显式转换。

解决方案 »

  1.   


    var
      obj: TObject;
    begin
      obj := TEdit.Create;
      XXX(obj);
      / XXX过程中就可以TEdit(XXX)
    end 我想做到这下这样:
    OBJ := TXXXX.CREATE;
    TXXXX这种东西怎么传呀。
      

  2.   

    procedure XXXXXXX(InstanceClass: TComponentClass; var Reference);
    begin
      (Reference as InstanceClass).Create;
    end;
    不知道行不行?
    **************************************************************************************
    *Try My Best To Know Something About Everything, And Everything About Something! 
    **************************************************************************************
      

  3.   

    procedure XXXXXXX(InstanceClass: TComponentClass; var Reference);
    begin
      (Reference as InstanceClass).Create;
    end;
    不知道行不行?
    ********************************************************************
    *TryMyBestToKnowSomethingAboutEverythingAndEverythingAboutSomething! 
    ********************************************************************
      

  4.   

    if obj is TCar then
       (obj as TCar).函数;
    这样行么?
      

  5.   

    procedure TValueObjectList.SetOLEData(const Value: OleVariant);
    var
      i_i: integer;begin  if not VarIsArray(Value) then
        Exit;
      Clear;  for i_i:=0 to VarArrayHighBound(Value,1) do
      begin
        ValueObject := TValueObject(ClassName.NewInstance);
        ValueObject.POLEData := Value[i_i];
        Add(ValueObject);
      end;
    end;function TValueObjectList.GetOLEData: OleVariant;
    var
      i_i, i_iCount: Integer;
    begin  if Count=0 then
      begin
        TVarData(Result).VType := varEmpty;
        Exit;
      end;  i_iCount := Count;
      Result := VarArrayCreate([0,i_iCount-1],varVariant);  for i_i:=0 to i_iCount-1 do
      begin
        User := TUserVO(Items[i_i]);
        Result[i_i] := User.POLEData;
      end;end;
      

  6.   

    我每个派生类都要 :   User := TUserVO(Items[i_i]);
       我想传一个变参进去。
       变成:  obj := TXXXX(Items[i_i]);
       这个意思。谢谢大家啦。