E2149 La classe n'a pas de propriété par défaut (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi) - Index

Vous avez utilisé une variable instance de classe dans une expression tableau, mais le type class n'a pas déclaré de propriété tableau par défaut.



program Produce;

  type
    Base = class
    end;

  var
    b: Base;

  procedure P;
    var ch : Char;
  begin
    ch := b[1];
  end;

begin
end.

L'exemple ci-dessus provoque une erreur car 'Base' ne déclare pas de propriété array et 'b' n'est pas un tableau.



program Solve;

  type
    Base = class
      function GetChar(i : Integer): Char;
      property data[i : Integer]: Char read GetChar; default;
    end;

  var
    b: Base;

  function Base.GetChar(i : Integer): Char;
  begin GetChar := 'A';
  end;

  procedure P;
    var ch : Char;
  begin
    ch := b[1];
    ch := b.data[1];
  end;

begin
end.

Lorsque vous avez déclaré une propriété par défaut pour une classe, vous pouvez utiliser la variable instance de classe dans une expression tableau, comme la variable instance de classe elle-même était actuellement un tableau. Vous pouvez aussi utiliser le nom de la propriété pour accéder au tableau.

Remarque :  Si les informations sont activées, vous recevrez deux avertissements sur la valeur affectée à 'ch' qui n'a jamais été utilisée.