![]() |
Generics nicht in SubRecords verfügbar.
Delphi-Quellcode:
Bei Diesem meckert der Compiler folgender Maßen rum, in der Zeile
Type
TRepleacer<Str> = Record Private _Data: Array[-1..255] of Record Pos, Len: Integer; S: Str; End; _Count: Integer; _S: ^Str; Public Procedure Initialize(Var S: Str); Procedure Repleace(Pos, Len: Integer; Const S: Str; Var DoOffset: Integer); Function Finalize: Integer{Offset}; End;
Delphi-Quellcode:
:
S: Str;
Zitat:
![]() Wie um himmels Willen kommt der Compiler darauf? Dieses ist doch in 'ner "Deklaration" zu finden und steht nicht irgendwo im "Code". Nja, also einfach umbenannt und schon kommt Zitat:
Wieso nicht? :evil: Und ja, ich werde jetzt den Record noch in einen weiteren generischen Typen verfrachten und hoffen es geht dann, aber muß denn immer alles so umständlich sein? :cry: |
AW: Genericks nicht in SubRecords verfügbar.
Typparameter funktionieren offenbar nicht in anonymen Subrecords und Du kannst gern dafür einen QC Eintrag anlegen. Im Delphi.NET, welches immer für einen Vergleich gut ist, funktioniert dies auch nicht.
Zitat:
Ändere am besten den Code nach
Delphi-Quellcode:
Ich denke das war's was Du mit
TReplacer<T> = record
private type TData = array [-1..255] of record Pos, Len: Integer; S: T; end; var _Data: TData; _Count: Integer; _S: ^T; end; Zitat:
|
AW: Genericks nicht in SubRecords verfügbar.
OK, immerhin ein bissl besser, als mein doppelter Generic. :stupid:
Delphi-Quellcode:
Wenn ich jetzt noch das generische Stringproblem hinbekomm, dann isses fast ideal.
TReplacer<T> = record
type TData<T2> = array [-1..255] of record Pos, Len: Integer; S: T2; end; var _Data: TData<T>; _Count: Integer; _S: ^T; end; |
AW: Genericks nicht in SubRecords verfügbar.
Wenn der QC Eintrag dann gelöst ist, kannst du DelphiX2 kaufen, damit es funktioniert :)
|
AW: Genericks nicht in SubRecords verfügbar.
[OT]Da ist ein K zu viel in der Überschrift.[/OT]
|
AW: Generics nicht in SubRecords verfügbar.
Wo? :roll:
Nja, fehlerhafte Dinge darf man auch mit Fehlern schreiben. :stupid: |
AW: Generics nicht in SubRecords verfügbar.
Frank verwendet halt eine kreative Rechtschreibung
|
AW: Generics nicht in SubRecords verfügbar.
Ein bissl Individualität kann nie schaden. :angel2:
Ich versteh die Genericks "manchmal" nicht. Jetzt sind och noch generische Konstruktoren verboten. Zitat:
|
AW: Generics nicht in SubRecords verfügbar.
@USchuster:
Nee, ich glaub ich nehm doch eine externe Variante. Nachdem ich jetzt die Unit umgebaut und wieder kompilierbar hatte, da kam dieses raus:
Delphi-Quellcode:
Allerdings meldete sich der Compiler hier erst nach dem End. und ich brauchte eine Weile um es auf diese Zeilen zurückzuführen.
[DCC Fataler Fehler] RegEx.pas(4250): F2084 Interner Fehler: URW1111
nun sieht es also so aus
Delphi-Quellcode:
TReplacerData<Str> = Array[-1..1024] of Record
Pos, Len: Integer; S: Str; End; TReplacer<Str> = Record Private _Data: TReplacerData<Str>; _Count: Integer; _S: ^Str; Public Procedure Initialize(Var S: Str); Procedure Repleace(Pos, Len: Integer; Const S: Str; Var DoOffset: Integer); Function Finalize: Integer{Offset}; End; TReplacer = TReplacer<String>; TReplacerCP = TReplacer<CPString>; |
AW: Generics nicht in SubRecords verfügbar.
Pointer auf generische Typparameter gehen nicht, warum erklärt Barry Kelly
![]() P.S.: Nen Tip: Vergiss Delphi 2010 für solche abenteuerlichen Generic Versuche, das bringt nur Ärger (ich spreche aus Erfahrung) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz