![]() |
if Abfragen abkürzen
:hi:
kann mir vielleicht bitte jemand sagen ob und wie ich diese Abfrage abkürzen kann?
Code:
Vielen Dank.
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; |
Mit case geht das. So würde das da z. B. aussehen:
Code:
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.
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; 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. |
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 |
Von mir gibt´s die Idee:
Code:
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. :wink:
[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]; |
Alles Klar. Danke euch allen.
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 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