AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

if Abfragen abkürzen

Ein Thema von Daniel B · begonnen am 11. Aug 2002 · letzter Beitrag vom 11. Aug 2002
Antwort Antwort
Daniel B
(Gast)

n/a Beiträge
 
#1

if Abfragen abkürzen

  Alt 11. Aug 2002, 12:18


kann mir vielleicht bitte jemand sagen ob und wie ich diese Abfrage abkürzen kann?

Code:
  if CPBaud = '2400' then
  begin
    CBBaud.ItemIndex := 0;
  end
  else if CPBaud = '4800' then
  begin
    CBBaud.ItemIndex := 1;
  end
  else if CPBaud = '9600' then
  begin
    CBBaud.ItemIndex := 2;
  end
  else if CPBaud = '14400' then
  begin
    CBBaud.ItemIndex := 3;
  end
  else if CPBaud = '19200' then
  begin
    CBBaud.ItemIndex := 4;
  end
  else if CPBaud = '28800' then
  begin
    CBBaud.ItemIndex := 5;
  end
  else if CPBaud = '38400' then
  begin
    CBBaud.ItemIndex := 6;
  end;
Vielen Dank.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2
  Alt 11. Aug 2002, 12:30
Mit case geht das. So würde das da z. B. aussehen:

Code:
case StrToInt(CPBaud) of
  2400: CBBaud.ItemIndex := 0;
  4800: CBBaud.ItemIndex := 1;
  9600: CBBaud.ItemIndex := 2;
  14400: CBBaud.ItemIndex := 3;
  19200: CBBaud.ItemIndex := 4;
  28800: CBBaud.ItemIndex := 5;
  38400: CBBaud.ItemIndex := 6;
end;
Da man case-Anweisungen nicht so ohne weiteres auf Strings anwenden kann, hab ich den String in einen Integer umgewandelt. Wenn der String nur diese Werte haben kann, dürfte das ja keine Probleme geben.

In diesem Fall könntest du aber evtl. auch auf Abfragen verzichten und den Faktor mit einer mathematischen Beziehung ermitteln. Bei diesen Zahlen dürfte dies relativ leicht sein.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#3
  Alt 11. Aug 2002, 12:33
Hallo,

in Erweiterung zum Vorschlag von chewie würde ich statt der Funktion "StrToInt()" lieber "StrToIntDef(..,-1)" verwenden und den Fehlerwert '-1' mit in die Case-Abfrage integrieren. Dann hättest Du sogar eine halbwegs passable Fehlerbehandlung.


Grüße,
Daniel
Daniel R. Wolf
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#4
  Alt 11. Aug 2002, 12:34
Von mir gibt´s die Idee:
Code:
[b]const[/b]
  Bauds = [b]array[/b][0..6][b]of[/b] [b]string[/b];
    ('2400','4800','9600','14400','19200','28800','38400');
[b]var[/b]
  i : integer;
[b]begin[/b]
  [b]for[/b] i := 0 [b]to[/b] 6 [b]do[/b]
    [b]if[/b](CPBaud = Bauds[i]) [b]then[/b]
      [b]begin[/b]
        CBBaud.ItemIndex := i; break;
      [b]end[/b];
[b]end[/b];
Für Daniel: Um hier eine Fehlerbehandlung zu haben, könnte man den ItemIndex von "CBBaud" hier vor dem Schleifendurchlauf auf einen Default-Wert setzen.
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#5
  Alt 11. Aug 2002, 12:44
Alles Klar. Danke euch allen. http://n-digital.info/Bilder/daumen.gif
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:38 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