Ver Mensaje Individual
  #2  
Antiguo 12-05-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.285
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A mi esto me compila y se ejecuta perfectamente en Delphi 11.2 Patch 1

NOTA: No uso la etiqueta de Delphi, porque parece que no gestiona bien los símbolos de MayorQue y MenorQue de los genéricos.

Código:
interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TDatoA = record
    A: integer;
  end;

  TDatoB = record
    B: integer;
  end;

  /// 2.)
  TArrayA = TArray<TDatoA>;
  TArrayB = TArray<TDatoB>;


  TArrayAHelper = record helper for TArrayA
    procedure Clear;
  end;

  TArrayBHelper = record helper for TArrayB
    procedure Clear;
  end;

  TForm3 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    A: TArrayA;
    B: TArrayB;
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
begin
  /// ...
  A.Clear;
  B.Clear;
end;

{ TArrayAHelper }

procedure TArrayAHelper.Clear;
begin
  var len:integer := Length(Self);
  // form3.Memo1.Lines.Add('Longitud=' + len.ToString);
  for var i:integer := 0 to len-1 do
    Self[i].A := 0;
end;

{ TArrayBHelper }

procedure TArrayBHelper.Clear;
begin
  var len:integer := Length(Self);
  // form3.Memo1.Lines.Add('Longitud=' + len.ToString);
  for var i:integer := 0 to len-1 do
    Self[i].B := 0;
end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita