Autor Beitrag
DaBass
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 14.10.03 09:59 
Ich möchte einen neuen Datentyp erstellen.

Der DatenTyp ist ähnlich wie Boolean, nur dass er vier möglichkeiten bereitstellen muss. und die sind:
- passed
- failed
- performed
- none

wie kann ich einen solchen Datentyp erstellen, bzw. wie kann ich den Boolean verändern und anpassen??
Shark
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 87

98, XP
D3, D5, D7
BeitragVerfasst: Di 14.10.03 10:16 
Versuch es mit einer Menge, dann kannst Du mit case of abfragen...

ausblenden Quelltext
1:
type TState = (stPassed,stFailed,stPerformed,stNone);					
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Di 14.10.03 10:23 
Hallo,

@Shark

Das ist keine Menge sondern ein Aufzählungstyp.

Eine Menge wird in der Form
ausblenden Delphi-Quelltext
1:
2:
type 
  TState = set of (stPassed, stFailed, stPerformed, stNone);

deklariert.

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
DaBass
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 14.10.03 10:31 
Wie muss ich den Datentyp definieren, damit ich sie in einer Case anweisung auswerten kann??

Fehlermeldung:[Fehler] mainUnit.pas(370): Ordinaltyp erforderlich

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
    case TestState of
      stPassed: ...;
      stFailed: ...;
      stPerformed: ...;
      stNone: Status := ...';
    end;
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Di 14.10.03 10:41 
Hi,
DaBass hat folgendes geschrieben:
Wie muss ich den Datentyp definieren, damit ich sie in einer Case anweisung auswerten kann??

da kannst du den Aufzählungstyp von Shark nehmen.

Gruß
Klabautermann
maximus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: Di 14.10.03 10:45 
Wenn du es nicht als menge definierst, sondern als enum, muss es gehen:

ausblenden Delphi-Quelltext
1:
type TState = (stPassed,stFailed,stPerformed,stNone);					


mfg.


PS: wenn du sets (mengen) verwenden willst, dann musst du if benutzen:

ausblenden Delphi-Quelltext
1:
if stFailed in testSTate then makeIt;					

_________________
mfg.
mâximôv
DaBass
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 14.10.03 10:51 
vielen dank, es funktionert einwandfrei
Shark
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 87

98, XP
D3, D5, D7
BeitragVerfasst: Di 14.10.03 11:06 
Ja es ist ein Aufzählungstyp! :oops:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
type TState = (stPassed, stFailed, stPerformed, stNone);

var myState: TState;

myState := stNone;
case myState of
stNone:...;
...

else
...
end;