Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi GPStatus als string (https://www.delphipraxis.net/192193-gpstatus-als-string.html)

EWeiss 28. Mär 2017 01:58


GPStatus als string
 
Ist wieder spät da klappt wieder gar nichts.

Wie kann ich den Status von GPStatus als Text ausgeben (string)

Delphi-Quellcode:
type

  Status = (
    Ok,
    GenericError,
    InvalidParameter
  );
  TStatus = Status;
Delphi-Quellcode:
GpStatus         = TStatus;


ohne die ganze type wieder zu parsen.

gruss

hoika 28. Mär 2017 04:37

AW: GPStatus als string
 
Hallo,
das sollte über RTTI gehen

http://docwiki.embarcadero.com/RADSt...r_Simple_Types

Stichwort Enumeration Types

EWeiss 28. Mär 2017 04:53

AW: GPStatus als string
 
Zitat:

Zitat von hoika (Beitrag 1365700)
Hallo,
das sollte über RTTI gehen

http://docwiki.embarcadero.com/RADSt...r_Simple_Types

Stichwort Enumeration Types

Danke.
Die frage die da wäre unter D2010 anwendbar?

gruss

hoika 28. Mär 2017 04:57

AW: GPStatus als string
 
Hallo,
ja, der Code läuft auch unter D2007,
muss ich nachher mal raussuchen.

EWeiss 28. Mär 2017 05:01

AW: GPStatus als string
 
Zitat:

Zitat von hoika (Beitrag 1365704)
Hallo,
ja, der Code läuft auch unter D2007,
muss ich nachher mal raussuchen.

Das wäre nett Danke dir.

gruss

Ghostwalker 28. Mär 2017 05:40

AW: GPStatus als string
 
Oder ohne RTTI:

Delphi-Quellcode:
Const
  cStatus : Array[TStatus] of String = (
   'Ok',
   'GenericError',
   'InvalidParameter'
  );
und dann einfach über:

Delphi-Quellcode:
cStatus[status]
darauf zugreifen.

Läuft unabhängig von der Delphi-Version und sauber internationalisiert werden :)

EWeiss 28. Mär 2017 05:44

AW: GPStatus als string
 
Zitat:

Zitat von Ghostwalker (Beitrag 1365706)
Oder ohne RTTI:

Delphi-Quellcode:
Const
  cStatus : Array[TStatus] of String = (
   'Ok',
   'GenericError',
   'InvalidParameter'
  );
und dann einfach über:

Delphi-Quellcode:
cStatus[status]
darauf zugreifen.

Läuft unabhängig von der Delphi-Version und sauber internationalisiert werden :)

könnte ich machen..
Aber dann ändere ich die GDIP_API Unit.
Was bedeutet ich muss alle Funktionen die auf GPStatus zugreifen wieder ändern. Oder?

gruss

Union 28. Mär 2017 08:01

AW: GPStatus als string
 
Sollte in etwa so gehen:
Delphi-Quellcode:
GetEnumName(TypeInfo(TStatus), Integer(AStatus));

EWeiss 28. Mär 2017 08:16

AW: GPStatus als string
 
Zitat:

Zitat von Union (Beitrag 1365714)
Sollte in etwa so gehen:
Delphi-Quellcode:
GetEnumName(TypeInfo(TStatus), Integer(Status));

nicht wirklich.

Zitat:

[DCC Fehler] uMain.pas(304): E2029 '(' erwartet, aber ')' gefunden
Bei Status.

gruss

Union 28. Mär 2017 08:23

AW: GPStatus als string
 
TypInfo in den uses?

Delphi-Quellcode:
program RttiToString;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils,
  System.Rtti,
  System.TypInfo;

type

  Status = (
    Ok,
    GenericError,
    InvalidParameter
  );
  TStatus = Status;

var
  AStatus : TStatus;

begin
  try
    AStatus := GenericError;
    Writeln(
      GetEnumName(TypeInfo(TStatus), Integer(AStatus))
    );
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  Readln;
end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr.
Seite 1 von 2  1 2      

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