tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
1311
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    HarryXVI HarryXVI ist offline Mitglied Gold
    Registriert seit
    Apr 2008
    Beiträge
    108
    wenn ich bei einer if-Anweisung zwei Sachen verknüpfen will

    Code :
    1
    2
    
    if ImAuto1.Left = 272 and ImAmpelRot.Visible = true 
      then TiAutos.Enabled := false;

    erscheint in Delphi 7diese Fehlermeldung: "Operator (=) ist auf diesen Operandentyp nicht anwendbar."
    Wenn ich die beiden Bedingung aber einzeln schreibe, klappt's
    Was ist los?
    .
     

  2. #2
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    Hi,

    wenn du einen booleschen Ausdruck in eine if-Anweisung einsetzt, musst du da nicht mehr auf true oder false vergleichen. Der Ausdruck alleine reicht, gibt ja schon true oder false zurück.

    Ich bin mir nicht sicher, ob es tatsächlich daran liegt, aber ich nehme mal an, dass der Compiler die Zeile falsch interpretiert. Oder zumindest anders als du sie meintest:

    Code delphi:
    1
    
    if (ImAuto1.Left = 272 and ImAmpelRot.Visible) = true then
    statt
    Code delphi:
    1
    
    if (ImAuto1.Left = 272) and (ImAmpelRot.Visible = true) then

    Deswegen würde ich dir vorschlagen, das "= true" einfach mal wegzulassen. Evtl. hat die Konjunktion da eine höhere Bindungspriorität und das "= true" am Ende wird als Anhängsel an den gesamten Ausdruck erkannt. Aber wie gesagt: Sicher bin ich mir da nicht, ist nur eine Vermutung.

    Grüße, D.
     
    "You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse

  3. #3
    Registriert seit
    Mar 2004
    Beiträge
    441
    Ich habe auch schon mit true und false seltsame Fehlermeldungen bei meinen Bedingungen erlebt, vor allem bei Verknüpfungen mit AND und OR. Seit ich mir angewöhnt habe, jede einzelne Bedingungen in Klammern zu schreiben und auch die entsprechenden Bedingungen miteinander zu Klammern (z.B. if ( ( Bedingung 1 AND Bedingung 2) OR Bedingung 3) usw.) habe ich keine Probleme mehr gehabt.
     

  4. #4
    HarryXVI HarryXVI ist offline Mitglied Gold
    Registriert seit
    Apr 2008
    Beiträge
    108
    danke für eure Hilfe, jetzt hat's geklappt
     

Ähnliche Themen

  1. XSD Bedingungen****?
    Von andy98 im Forum XML Technologien
    Antworten: 0
    Letzter Beitrag: 15.01.11, 22:12
  2. If mit 2 Bedingungen?
    Von nordi im Forum PHP
    Antworten: 5
    Letzter Beitrag: 08.11.10, 15:58
  3. If-Bedingungen
    Von MoJo48 im Forum Java Grundlagen
    Antworten: 4
    Letzter Beitrag: 24.11.09, 15:40
  4. MySQL AND und OR Bedingungen verknüpfen
    Von suntrop im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 04.11.08, 19:26
  5. wie kann ich bei if und while zwei Bedingungen "und" und "oder" verknüpfen?
    Von WilliamSpiderWeb im Forum VisualStudio & MFC
    Antworten: 3
    Letzter Beitrag: 18.10.08, 02:33