![]() |
Case Probleme
aloha,
mit der case funktion bin ich noch nicht so bewandert... kann sein das ich hier eine anfänger frage stelle, aber ich weiß grad leider nicht wo mein problem ist... hier wäre mal mein case block
Delphi-Quellcode:
der inhalt von strgrid_interfaceval.Cells[2, 1] müsste ja vom typ string sein...
Case strgrid_interfaceval.Cells[2, 1] of
'ZDL1;' : lbl_carrier.Caption := 'Sped1'; 'ZDP3;' : lbl_carrier.Caption := 'Sped2'; 'ZDU1;' : lbl_carrier.Caption := 'Sped3'; 'ZDG1;' : lbl_carrier.Caption := 'Sped4; 'ZDG2;' : lbl_carrier.Caption := 'Sped5'; 'ZDG3;' : lbl_carrier.Caption := 'Sped6'; End; beim compelieren erhalt ich aber jetzt die fehlermeldung "Inkompatible Typen 'Integer' und 'string'" weiß jemand woran das liegt??? |
Re: Case Probleme
Zitat:
|
Re: Case Probleme
Case kann nur mit ordinalen Typen verwendet werden, insbesondere funktionieren also reelle Typen, Mengen und Strings nicht. Du kannst höchstens AnsiIndexText verwenden.
|
Re: Case Probleme
|
Re: Case Probleme
Zitat:
Delphi-Quellcode:
Da die Labels bei Case Konstanten sein müssen, must du sie wohl mit dem Taschenrechner ausrechnen - Delphi hat keine Macros für Preprozessor. (Kommentar zufügen, damit man weiss, welcher Text gemeint ist).
type TCellword : case boolean of
false : (W : word); true : (Hi,Lo : Byte); end; {...} var Cellword : TCellword; {...} Cellword.Hi := ord (strgrid_interfaceval.Cells[2, 1][3]); Cellword.LO := ord (strgrid_interfaceval.Cells[2, 1][4]); Case Cellword.W of {...} { NOT tested! } Ich würde aber einfach eine Reihe if-Statements hintereinander nehmen, ist besser lesbar. Gruss Reinhard |
Re: Case Probleme
Guten Morgen Andreas,
das Problem kannst Du auch mit AnsiIndexStr angehen. ![]() ![]() Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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