打印本文 打印本文 关闭窗口 关闭窗口
Delphi深度探索-CodeSite应用指南
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2963  更新时间:2009/4/23 18:39:53  文章录入:mintao  责任编辑:mintao
    begin

      Result := itStockStringList;

    end;

    实现一个自定义的格式化器的第一步是确定哪种类型的内置察看器将被用来察看格式化后的数据,这里使用的是字符串列表察看器。察看器类型将被FormatData方法所使用。 

    procedure TCSEmployeeSummaryFormatter.FormatData( var Data );

    var

      EmpRec: TCSEmployee;

    begin

      EmpRec := TCSEmployee( Data );

      AddLine( EmpRec.FirstName + '''' '''' + EmpRec.LastName );

      AddLine( EmpRec.Address );

      AddLine( EmpRec.City + '''', '''' + EmpRec.State + ''''  '''' + EmpRec.ZipCode );

      AddLine( '''''''' );

      AddLine( ''''Phone: '''' + EmpRec.PhoneNumber );

      AddLine( ''''Hire Date: '''' + DateToStr( EmpRec.HireDate ) );

      AddLine( ''''Salary: '''' + Format( ''''%m'''', [ EmpRec.Salary ] ) );

      AddLine( '''''''' );

      AddLine( ''''Vacation Days: '''' + IntToStr( EmpRec.VacationDays ) );

      AddLine( ''''Sick Days: '''' + IntToStr( EmpRec.SickDays ) );

      if EmpRec.Manager then

        AddLine( ''''Manager: Yes'''' )

      else

        AddLine( ''''Manager: No'''' );

    end;

    FormatData 方法是核心部分,注意传递给FormatData方法的Data参数是一个无类型的可变参数。这就意味着这个参数可以是任何数据类型的,通过格式注册过程,我们可以确保强制类型映射为自定义的数据记录,而不会发生转换错误。

    转换数据类型后,我们就可以对数据进行格式化了,这里使用TCSFormatter 基类的 AddLine方法在字符串间添加分割线来进行格式化。 

    function TCSEmployeeSummaryFormatter.TypeName: string;

    begin

      Result := ''''TCSEmployee'''';

    end;

    TypeName方法的重载是可任选的,但通常我们可以用它来返回显示在消息列表中的字符串。

    {=========================================}

    {== TCSEmployeeDetailsFormatter Methods ==}

    {=========================================}

    function TCSEmployeeDetailsFormatter.InspectorType: TCSInspectorType;

    begin

      Result := itStockGrid;

    end;

    对于employeedetails格式器来说,命名网格察看器将被用来察看数据信息:

    procedure TCSEmployeeDetailsFormatter.FormatData( var Data );

    var

      EmpRec: TCSEmployee;

    begin

      EmpRec := TCSEmployee( Data );

      AddNameValuePair( ''''LastName'''', EmpRec.LastName );

      AddNameValuePair( ''''FirstName'''', EmpRec.FirstName );

      AddNameValuePair( ''''Address'''', EmpRec.Address );

      AddNameValuePair( ''''City'''', EmpRec.City );

      AddNameValuePair( ''''State'''', EmpRec.State );

      AddNameValuePair( ''''ZipCode'''', EmpRec.ZipCode );

      AddNameValuePair( ''''PhoneNumber'''', EmpRec.PhoneNumber );

      AddNameValuePair( ''''HireDate'''', EmpRec.HireDate );

      AddNameValuePair( ''''Salary'''', Format( ''''%m'''', [ EmpRec.Salary ] ) );

      AddNameValuePair( ''''VacationDays'''', EmpRec.VacationDays );

      AddNameValuePair( ''''SickDays'''', EmpRec.SickDays );

      AddNameValuePair( ''''Manager'''', EmpRec.Manager );

 &n

上一页  [1] [2] [3] [4]  下一页

打印本文 打印本文 关闭窗口 关闭窗口