Generics Tarray<byte>

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Generics Tarray<byte>

Beitrag von af0815 »

Ich sehe mir gerade die ZXing Komponente ( Ist dzt. Delphi only !) an und bin auf folgendes Problem mit den Generics gestossen.

Es wird ein TArray<byte> verwendet, da bekomme ich aber die folgende Meldung

Code: Alles auswählen

ZXing.LuminanceSource.pas(50,25) Error: Generics without specialization cannot be used as a type for a variable
 

In der syshelp.inc ist das TArray wie folgt definiert

Code: Alles auswählen

Type
  generic TArray<T> = array of T;
 


Wieso bekomme ich die Fehlermeldung ? Und wie kann ich das für Lazarus umbauen ?


Die ganze Deklaration ist wie folgt

Code: Alles auswählen

  TLuminanceSource = class
  protected
    FWidth: Integer;
    FHeight: Integer;
  public
    constructor Create(const width, height: Integer); virtual;
   function Matrix: TArray<byte>; virtual; abstract;
   function getRow(const y: Integer; row: TArray<byte>): TArray<byte>; virtual; abstract;  //<-- TArray<byte>
       function crop(const left, top, width,
       height: Integer): TLuminanceSource; virtual;
       function invert(): TLuminanceSource; virtual;
       function ToString(): String; override;
   function RotateSupported: Boolean; virtual;
   function CropSupported(): Boolean; virtual;
   function InversionSupported: Boolean; virtual;
   function rotateCounterClockwise(): TLuminanceSource; virtual;
   function rotateCounterClockwise45(): TLuminanceSource; virtual;
   property Height: Integer read FHeight;
   property Width: Integer read FWidth;
  end;
 
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Generics Tarray<byte>

Beitrag von marcov »

Geht hier prima mit FPC 3.1.1 und {$mode delphi}

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Generics Tarray<byte>

Beitrag von af0815 »

Danke,
das mit dem Mode {$mode delphi} war mein Problem, mit fpc 3.0.2 geht auch.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Generics Tarray<byte>

Beitrag von marcov »

af0815 hat geschrieben:Danke,
das mit dem Mode {$mode delphi} war mein Problem, mit fpc 3.0.2 geht auch.


Delphi code immer im mode delphi nutzen.

Antworten