Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi in D5 unbekanntes TYPE-Konstrukt (https://www.delphipraxis.net/214596-d5-unbekanntes-type-konstrukt.html)

2ndSnoopy 5. Feb 2024 15:11

Delphi-Version: 5

in D5 unbekanntes TYPE-Konstrukt
 
Hallo *,
ich möchte eine Source aus D10 nach D5 übertragen.
Dabei bin ich auf folgendes Konstrukt in einer TYPE-Section gestoßen, das in D5 nicht bekannt ist.

CredentialUse = (cuInbound = SECPKG_CRED_INBOUND, cuOutbound = SECPKG_CRED_OUTBOUND, cuBoth = SECPKG_CRED_BOTH) ;

Ich habe keine Ahnung was das ist.
Gefunden habe ich, daß SECPKG_CRED_INBOUND etc. Systemkonstanten sind.
CONST
SECPKG_CRED_INBOUND = $00000001;
SECPKG_CRED_OUTBOUND = $00000002;
SECPKG_CRED_BOTH = $00000003;
SECPKG_CRED_DEFAULT = $00000004;
SECPKG_CRED_RESERVED = $F0000000;

Kann man (ich) das obige Statement in D5 nachbilden?

Für jeden Hinweis bin ich dankbar.

:stupid: Matthias

peterbelow 5. Feb 2024 15:26

AW: in D5 unbekanntes TYPE-Konstrukt
 
Meckert der Compiler über die Syntax mit dem "=" in der Typdefinition oder findet er einfach SECPKG_CRED_INBOUND et al. nicht? Die Syntax sollte per se auch in D5 funktionieren, das ist eine Ergänzung der orginalen enumeration types um verschiedene Windows-API Konstrukte (C/C++ enums) als Delphi enumerated types darstellen zu können. Das ging schon in Delphi 1 wenn mich mein Vergessnis nicht täuscht. Vermutlich enthält die D5 windows-unit aber einfach diese Konstanten und das zugehörige API nicht, das gabs vermutlich noch garnicht in der Windows-Version, für die D5 ausgelegt war.

himitsu 5. Feb 2024 15:57

AW: in D5 unbekanntes TYPE-Konstrukt
 
Normal sind bei einem ENUM die Felder durchnummeriert, von 0 bis ...

Hier sind es Felder vordefinierten Werten. (via
Delphi-Quellcode:
=
zugewiessen, aus anderen Konstanten)
Alternativ kann man auch mit Dummy-Feldern auffüllen.

Delphi-Quellcode:
type MyEnum = (Null, One, Two, Three, Four);

was Folgendem entspricht
Delphi-Quellcode:
type MyEnum = (Null=0, One=1, Two=2, Three=3, Four=4);


Nun machen wir mal eine Lücke rein:
Delphi-Quellcode:
type MyEnum = (Null, One, Three, Four);

Delphi-Quellcode:
type MyEnum = (Null=0, One=1, Three=2, Four=3);

aber da oben ja die Namen und Werte verschoben sind, verschieben wir nun manull einen Wert
Delphi-Quellcode:
type MyEnum = (Null, One, Three=3, Four);
(die 3 verschoben und danach wird wieder normal mit +1 weitergezählt)
oder
Delphi-Quellcode:
type MyEnum = (Null=0, One=1, Three=3, Four=4);


oder eben mit einem Dummy-Feld auffüllen
Delphi-Quellcode:
type MyEnum = (Null, One, _DUMMY_, Three, Four);



Delphi-Quellcode:
type CredentialUse = (_cu0, cuInbound, cuOutbound, cuBoth);

2ndSnoopy 5. Feb 2024 16:17

AW: in D5 unbekanntes TYPE-Konstrukt
 
vielen herzlichen Dank für beide Antworten.
@himitsu: ich glaube ich habe es verstanden :-D
dies ist sicher die richtige Lösung:

type CredentialUse = (_cu0, cuInbound, cuOutbound, cuBoth);

eine Zuweisung eines Wertes wie MyEnum = (Null=0,... ist in D5 jedoch nicht möglich.
:x

uligerhardt 5. Feb 2024 16:49

AW: in D5 unbekanntes TYPE-Konstrukt
 
Zitat:

Zitat von 2ndSnoopy (Beitrag 1533042)
eine Zuweisung eines Wertes wie MyEnum = (Null=0,... ist in D5 jedoch nicht möglich.
:x

WIMRE kam das in D6/Kylix wegen Linux.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:21 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