AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi If Abfrage mit mehreren Logischen Operatoren!?
Thema durchsuchen
Ansicht
Themen-Optionen

If Abfrage mit mehreren Logischen Operatoren!?

Ein Thema von richard_boderich · begonnen am 30. Jun 2005 · letzter Beitrag vom 30. Jun 2005
Antwort Antwort
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#1

If Abfrage mit mehreren Logischen Operatoren!?

  Alt 30. Jun 2005, 13:14
moin jung und mädels,

ich hab ein Problem. kann mir vielleicht einer von euch sagen warum diese If Schleife nicht Funktioniert wie sie soll?

if (typ = 'US AntiAir') or (typ='US AntiTank') or (typ='US Soldier') or (typ='US Sniper') and (Einheitenstatus='Friendly') then image.Picture:=Form1.Inf_gruen.picture; Ich gruebel da jetz schon ewig dran aber komme einfach nicht weiter. die bedingung arbeitet nur korrekt wenn typ "US Sniper" ist, also dem letzten wert von typ. bei den anderen drei typen liefert die abfrage ein falsches ergebnis.

SO long

Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: If Abfrage mit mehreren Logischen Operatoren!?

  Alt 30. Jun 2005, 13:15
Was sollte denn eigentlich passieren?
Setze doch einfach ein paar klammern...
Benjamin
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: If Abfrage mit mehreren Logischen Operatoren!?

  Alt 30. Jun 2005, 13:17
Eventuell kann man bessert helfen, wenn du uns sagts, was du unter 'nicht funktioniert' verstehst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#4

Re: If Abfrage mit mehreren Logischen Operatoren!?

  Alt 30. Jun 2005, 13:17
and hat eine höhere Priorität als or
also wird die Operation so ausgeführt:
Delphi-Quellcode:
if (typ = 'US AntiAir') or (typ='US AntiTank') or (typ='US Soldier') or
((typ='US Sniper') and (Einheitenstatus='Friendly')) then
Abhilfe:
Delphi-Quellcode:
if ((typ = 'US AntiAir') or (typ='US AntiTank') or (typ='US Soldier') or ((typ='US Sniper'))
and (Einheitenstatus='Friendly') then

[size=8][Edit]Eine Klammer zu viel...[/edit][size]
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: If Abfrage mit mehreren Logischen Operatoren!?

  Alt 30. Jun 2005, 13:18
Ich würde sagen, um die ganzen or gehört eine Klammer, je nachdem, auf was sich das and bezieht. Wenn das and zum letzten or gehört, müsste eine Klammer ans Ende.
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#6

Re: If Abfrage mit mehreren Logischen Operatoren!?

  Alt 30. Jun 2005, 13:24
ok jungs,


many THX klammernsetzung wars. folgende loesung funtz bei mir

if ((typ = 'US AntiAir') or (typ='US AntiTank') or (typ='US Soldier') or (typ='US Sniper')) and (Einheitenstatus='Friendly') then image.Picture:=Form1.Inf_gruen.picture;
nochmal vielen Dank euch allen´, hab wohl den wald vor lauter baumen nich mehr gesehn.

Bis denne,

euer Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#7

Re: If Abfrage mit mehreren Logischen Operatoren!?

  Alt 30. Jun 2005, 13:38
Nebenbei: Abfragen mit Strings auf diese Weise sind sehr ineffizient. Verwende lieber eine lineare Aufzählung, z.B.:
Delphi-Quellcode:
type
  TUnitType = (UT_US_ANTIAIR, UT_US_ANTITANK, UT_US_SOLDIER, UT_US_SNIPER);
  Mit Zitat antworten Zitat
Antwort Antwort


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:19 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