Delphi中的Java内部类

用户名

我是Delphi的新手,我有一些用Java编写的代码。它具有内部类结构。但是我不知道如何转换为Delphi。

unit resolutionSet;

interface

uses
  Winapi.Windows, System.Math;

type
TResolutionSet = class
  type
  TResolutionLevel = class
  private
    { private declarations }
    discardLayers : Integer;
    dims          : TRect;
    function getZoomLevel : Integer;
    function getZoomPercent : Double;
    function getResolutionBounds : TRect;
    constructor Create(_discardLayers : Integer; _dims : TRect) overload;
  protected
    { protected declarations }
  public
    { public declarations }
  published
    { published declarations }
  end;
private
  { private declarations }
  resolutions : array of TResolutionLevel;
protected
  { protected declarations }
public
  { public declarations }
  function getResolutionLevel(_currRes : TResolutionLevel; _delta : Integer) : TResolutionLevel overload;
  function getResolutionLevel(_index : Integer) : TResolutionLevel overload;
  function getClosestResolutionLevel(_source : Double; _target : Double) : TResolutionLevel;
  procedure addResolutionLevel(_discardLayer : Integer; _dims : TRect);
  constructor Create(_numResolutions : Integer) overload;
published
  { published declarations }
end;
implementation

constructor TResolutionSet.Create(_numResolutions : Integer) overload;
begin
  SetLength(resolutions, _numResolutions);
end;

procedure TResolutionSet.addResolutionLevel(_discardLayer : Integer; _dims : TRect);
begin
  resolutions[_discardLayer]:= TResolutionLevel.Create(_discardLayer, _dims);
end;

function TResolutionSet.getResolutionLevel(_currRes : TResolutionLevel; _delta : Integer) : TResolutionLevel overload;
begin
  //Result:= resolutions
end;

function TResolutionSet.getResolutionLevel(_index : Integer) : TResolutionLevel overload;
begin
  Result:= resolutions[_index];
end;

function TResolutionSet.getClosestResolutionLevel(_source : Double; _target : Double) : TResolutionLevel;
var
  idx : Integer = 0;
  i   : Integer;
begin
  for i := Length(resolutions)-1 downto 0 do
  begin
    idx:= i;
    if (_source * Power(2, resolutions[i].getZoomLevel())) <= _target then
      break;
  end;
  Result:= resolutions[idx];
end;

end.

我为内部类声明了TResolutionLevel,但是如何在哪里实现此类的方法呢?

达莉娅(Dalija Prasnikar)

如果您在类接口声明中时Shift+ Ctrl+ C,则Delphi将自动生成缺少的方法。在您的情况下,这些是:

{ TResolutionSet.TResolutionLevel }

constructor TResolutionSet.TResolutionLevel.Create(_discardLayers: Integer; _dims: TRect);
begin

end;

function TResolutionSet.TResolutionLevel.getResolutionBounds: TRect;
begin

end;

function TResolutionSet.TResolutionLevel.getZoomLevel: Integer;
begin

end;

function TResolutionSet.TResolutionLevel.getZoomPercent: Double;
begin

end;

如您所见,通过提供每个方法的完全限定名称,您可以像实现任何其他类的方法一样实现内部类的方法。对于嵌套类,这意味着包括外部类的名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Delphi中的Java内部类

来自分类Dev

Java中的内部类与子类

来自分类Dev

在Java中在外部类之外创建内部类的实例

来自分类Dev

Java android访问外部类中内部类的成员字段

来自分类Dev

强制子类在Java中设置内部类

来自分类Dev

使用Java中的接口的匿名内部类

来自分类Dev

从内部类中访问Java actionlistener变量

来自分类Dev

使匿名内部类成为Java中的lambda

来自分类Dev

解释在Java中访问内部类的方法?

来自分类Dev

Java中的内部类和封闭实例?

来自分类Dev

无法在java中创建内部类对象

来自分类Dev

Java,反射,内部类,

来自分类Dev

如何在Java中访问内部类(在assert中)

来自分类Dev

Java内部类在同一.java文件中隐藏外部类

来自分类Dev

如何从Java中的封闭类访问内部类?

来自分类Dev

Java无法访问内部类中的受保护变量

来自分类Dev

Java:如何从内部类中的方法返回外部方法

来自分类Dev

从Java中的静态方法返回内部类的实例

来自分类Dev

Java中的公共vs私有内部类

来自分类Dev

如何在Java中的Javapoet中生成内部类

来自分类Dev

无法访问Java中的内部类问题

来自分类Dev

在Java ASM中访问私有内部类

来自分类Dev

在Java中的监听器内部类,这是不好的做法?

来自分类Dev

如何在Java内部类中定义绑定类型参数

来自分类Dev

在Java中,匿名内部类型是否会损害性能?

来自分类Dev

在struts.xml中访问Java内部类

来自分类Dev

Java的内部类在哪里存储在内存中

来自分类Dev

如何在Scala中实例化Java通用内部类?

来自分类Dev

如何从Java中的嵌套内部类发送事件