Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Varianten Record mit Class operator declarieren (https://www.delphipraxis.net/214690-varianten-record-mit-class-operator-declarieren.html)

QuickAndDirty 22. Feb 2024 08:48

Delphi-Version: 12 Athens

Varianten Record mit Class operator declarieren
 
Hallo wie deklariere ich das hier
Delphi-Quellcode:
type
TVersionRecMode=(VersionDetails,VersionNumber, VersionArray);
TVersionRec=packed record
case VersionRec: TVersionRecMode of
  VersionDetails: (
    major:uInt16;
    minor:uInt16;
    release:uInt16;
    build:uInt16;
  );
  VersionNumber: ( Version64:Int64 );
  VersionArray: ( VersionArr:array [0..3] of uInt16 );

end;
so, dass das hier
Delphi-Quellcode:
class operator Implicit(Rec: TVersionRec): string;
oder
Delphi-Quellcode:
Function ToString:String;
mit drin ist?

himitsu 22. Feb 2024 09:28

AW: Varianten Record mit Class operator declarieren
 
Da leider, auch nach Jahrzenten und vielen vielen vielen vielen vielen vielen vielen vielen vielen vielen BugReports/FeatureRequests, immernoch das END vom CASE fehlt, mußt kannst du alles Andere nur vor dem CASE einfügen.

Danach dann mit
Delphi-Quellcode:
private
einen neuen Block anfangen oder mit
Delphi-Quellcode:
var
von Funktion wieder auf Variable Felder zurückschalten.



PS: Stell dir einfach vor, dass nach record/private/public ein implizites VAR steht.

QuickAndDirty 22. Feb 2024 09:48

AW: Varianten Record mit Class operator declarieren
 
Delphi-Quellcode:
type
TVersionRecMode=(VersionDetails,VersionNumber, VersionArray);
TVersionRec=packed record
  class operator Implicit(Rec: TVersionRec): string;
  Function ToString:String;
  case VersionRec: TVersionRecMode of
    VersionDetails: (
      major:uInt16;
      minor:uInt16;
      release:uInt16;
      build:uInt16;
    );
    VersionNumber: ( Version64:Int64 );
    VersionArray: ( VersionArr:array [0..3] of uInt16 );
end;
Omg das compiliert....

Warum habe ich das immer nur versucht unten einzusetzen...

Tausend Dank!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz