Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
fpc-src / usr / share / fpcsrc / 3.0.0 / tests / test / jvm / classmeth.pp
Size: Mime:
program classmeth;

{$mode delphi}

type
 TElCustomCryptoProviderClass = class of TElCustomCryptoProvider;
 TElCustomCryptoProvider = class
   class procedure SetAsDefault;
   class procedure DoSetAsDefault(Value : TElCustomCryptoProviderClass);
 end;

 tc2 = class(TElCustomCryptoProvider)
   class procedure SetAsDefault; //reintroduce;
 end;


var
  x: TElCustomCryptoProviderClass;

class procedure TElCustomCryptoProvider.SetAsDefault;
begin
 DoSetAsDefault(Self); /// Illegal expression
end;

class procedure TElCustomCryptoProvider.DoSetAsDefault(Value : TElCustomCryptoProviderClass);
begin
// SetDefaultCryptoProviderType(Value);
  x:=value;
end;

class procedure tc2.SetAsDefault;
begin
  DoSetAsDefault(Self);
end;

begin
  TElCustomCryptoProvider.SetAsDefault;
  if x<>TElCustomCryptoProvider then
    raise JLException.create('first');
  tc2.SetAsDefault;
  if x<>tc2 then
    raise JLException.create('second');
end.