![]() |
Variable soll nur bestimmte Werte annehmen dürfen - wie?
Moin,
hab per Suche nichts gefunden, was evtl. auch an den falschen Suchbegriffen lag. Also, ich hätte gerne eine Variable deklariert, die beispielsweise nur die Werte 'ha', 'hb und 'hc' annehmen darf. Wie geht das? :) Danke |
Wie wär's mit Array's? *g*
|
Re: Variable soll nur bestimmte Werte annehmen dürfen - wie?
Mach aus der Variablen eine Property und überprüfe den Wert im Setter.
Die erlaubten Werte könntest du in einer Array-Konstante zusammenfassen:
Delphi-Quellcode:
procedure TFoo.SetText(const AValue: string);
const Valid: Array[0..2] of string = ('ha', 'hb', 'hc'); var i: Integer; IsValid: Boolean; begin IsValid := false; for i := Low(Valid) to High(Valid) do if AValue = Valid[i] then begin IsValid := true; Break; end; if IsValid then FText := AValue; end; |
Re: Variable soll nur bestimmte Werte annehmen dürfen - wie?
Ich hab das bei mir so gemacht...
type TFormat = (Querformat, Hochformat); .. var Variable:TFormat; begin .. Somit kann "Variable" nur die angegebenen Werte annehmen... Korrigiert mich bitte, falls ich mich irre... ;-) |
Geht das nicht auch mit Array's? o.O
|
Re: Variable soll nur bestimmte Werte annehmen dürfen - wie?
Zitat:
Aber wie meint ihr das mit arrays? edit: danke fürs edit - nu weiß ich, was ihr meintet mit arrays ;) |
Re: Variable soll nur bestimmte Werte annehmen dürfen - wie?
Zitat:
Darf die Variable nur die Werte 'ha' und 'hb und 'hc' annehmen oder darf die Variable nur die Werte 'ha' oder 'hb oder 'hc' annehmen ? |
Re: Variable soll nur bestimmte Werte annehmen dürfen - wie?
Zitat:
Delphi-Quellcode:
Ein weiteres Stichwort lautet Typsicherheit. ;)
type
TFormat = (ha, hb, hc); var MeineVariable: TFormat; begin Meine Variable := ha; if MeineVariable = hb then MeineVariable := hc; end; @Kompon Ente: Lass bitte deine unnötigen Kommentare sein. :angel2: Wenn du dir den Thread mal ganz durchliest, weißt du hoffentlich auch warum. :angel: MfG freak |
Re: Variable soll nur bestimmte Werte annehmen dürfen - wie?
moin,
nochmal zum besseren Verständnis: Die von Duke vorgeschlagene Methode basiert auf Mengen(-typen/-operationen) [siehe ![]()
Delphi-Quellcode:
Wenn die Variable nur einen der Werte annehmen darf:
type
tWerte = ( ha, hb, hc );
Delphi-Quellcode:
Wenn die Variable mehrere Werte annehmen darf:
var
X: tWerte;
Delphi-Quellcode:
Mit in kann man prüfen ob ein Wert im Set enthalten ist.
var
X: set of tWerte; |
Re: Variable soll nur bestimmte Werte annehmen dürfen - wie?
hier mal nen Beispiel mit nem String Array, falls es noch wer gebrauchen kann...
Delphi-Quellcode:
Procedure TMeinDef.SetValue( Const Value: String );
Var i: Integer; Const Valids: Array[ 0..2 ] Of String = ( 'ha', 'hb', 'hc' ); Begin For i := Low( Valids ) To High( Valids ) Do Begin If SameText( Valids[ i ], Value ) Then Begin FValue := Value; Exit; End; End; Raise Exception.Create( '"' + Value + '"is a wrong kind of Value' ); End; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 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