AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Variable soll nur bestimmte Werte annehmen dürfen - wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Variable soll nur bestimmte Werte annehmen dürfen - wie?

Ein Thema von Totti · begonnen am 11. Jul 2005 · letzter Beitrag vom 11. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Totti
Totti

Registriert seit: 1. Dez 2004
Ort: Harrislee
59 Beiträge
 
Delphi 2005 Personal
 
#1

Variable soll nur bestimmte Werte annehmen dürfen - wie?

  Alt 11. Jul 2005, 14:38
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
Malte
  Mit Zitat antworten Zitat
Kompon Ente
(Gast)

n/a Beiträge
 
#2
  Alt 11. Jul 2005, 14:39
Wie wär's mit Array's? *g*
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#3

Re: Variable soll nur bestimmte Werte annehmen dürfen - wie?

  Alt 11. Jul 2005, 14:41
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;
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Duke_2004
Duke_2004

Registriert seit: 26. Jan 2005
61 Beiträge
 
#4

Re: Variable soll nur bestimmte Werte annehmen dürfen - wie?

  Alt 11. Jul 2005, 14:42
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...
  Mit Zitat antworten Zitat
Kompon Ente
(Gast)

n/a Beiträge
 
#5
  Alt 11. Jul 2005, 14:43
Geht das nicht auch mit Array's? o.O
  Mit Zitat antworten Zitat
Benutzerbild von Totti
Totti

Registriert seit: 1. Dez 2004
Ort: Harrislee
59 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Variable soll nur bestimmte Werte annehmen dürfen - wie?

  Alt 11. Jul 2005, 14:46
Zitat von Duke_2004:
Ich hab das bei mir so gemacht...

type
TFormat = (Querformat, Hochformat);
perfekt, klappt! Ich hatte esmit eckigen klammenr und ' ' versucht - nur wurd das nix


Aber wie meint ihr das mit arrays?


edit:
danke fürs edit - nu weiß ich, was ihr meintet mit arrays
Malte
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Variable soll nur bestimmte Werte annehmen dürfen - wie?

  Alt 11. Jul 2005, 14:48
Zitat von Totti:
Also, ich hätte gerne eine Variable deklariert, die beispielsweise nur die Werte 'ha', 'hb und 'hc' annehmen darf....
Wg der Ungenauigkeit der Frage kann ich keine Antwort geben.

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 ?
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: Variable soll nur bestimmte Werte annehmen dürfen - wie?

  Alt 11. Jul 2005, 14:55
Zitat von Duke_2004:
Ich hab das bei mir so gemacht...

type
TFormat = (Querformat, Hochformat);

..
var
Variable:TFormat;
begin
..
Dem schließe ich mich an.

Delphi-Quellcode:
type
  TFormat = (ha, hb, hc);

var
  MeineVariable: TFormat;
begin
  Meine Variable := ha;
  if MeineVariable = hb then
    MeineVariable := hc;
end;
Ein weiteres Stichwort lautet Typsicherheit.

@Kompon Ente: Lass bitte deine unnötigen Kommentare sein. Wenn du dir den Thread mal ganz durchliest, weißt du hoffentlich auch warum.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#9

Re: Variable soll nur bestimmte Werte annehmen dürfen - wie?

  Alt 11. Jul 2005, 14:58
moin,

nochmal zum besseren Verständnis:

Die von Duke vorgeschlagene Methode basiert auf Mengen(-typen/-operationen) [siehe Delphi-Referenz durchsuchenStrukturierte Typen]
Delphi-Quellcode:
type
  tWerte = ( ha, hb, hc );
Wenn die Variable nur einen der Werte annehmen darf:
Delphi-Quellcode:
var
  X: tWerte;
Wenn die Variable mehrere Werte annehmen darf:
Delphi-Quellcode:
var
  X: set of tWerte;
Mit in kann man prüfen ob ein Wert im Set enthalten ist.
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Variable soll nur bestimmte Werte annehmen dürfen - wie?

  Alt 11. Jul 2005, 14:58
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;
Christian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:41 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