AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Fehler : Operator auf diesem Operandentyp nicht anwendbar
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler : Operator auf diesem Operandentyp nicht anwendbar

Ein Thema von ThaiSon96 · begonnen am 7. Mai 2013 · letzter Beitrag vom 7. Mai 2013
Antwort Antwort
ThaiSon96

Registriert seit: 7. Mai 2013
11 Beiträge
 
Delphi 7 Personal
 
#1

Fehler : Operator auf diesem Operandentyp nicht anwendbar

  Alt 7. Mai 2013, 15:56
Delphi-Version: 7
Hallo,
ich möchte eine Formularanwendung erstellen. Beim Klick auf einen Button soll von 0 aus immer 1 addiert werden (die Zahl wird mit einem Label angezeigt). Wenn die Zahl durch 3 oder 7 teilbar ist, soll ein Fehler im Label angezeigt werden (z.b. 'MÖÖÖP!').

Ich hab mir das so überlegt (die Variable "zahl" ist real und der Wert 0 wird vorher zugewiesen):

procedure TForm1.Button1Click(Sender: TObject);
begin

zahl := zahl + 1;
if (zahl mod 3)=0 OR (zahl mod 7)=0 then
label1.Caption := 'MÖÖÖP!'
else
...

end;


Nun zeigt er mir in der Zeile 'if (zahl mod 3)=0 OR (zahl mod 7)=0 then' einen Fehler an:
Operator ist auf diesen Operandertyp nicht anwendbar.

Hat jemand eine Lösung? Die Zahl muss ja eigentlich integer sein, um angezeigt werden zu können.
Brauche Hilfe, bin ziemlich unerfahren mit Pascal.
Danke im Voraus
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Fehler : Operator auf diesem Operandentyp nicht anwendbar

  Alt 7. Mai 2013, 15:57
Zu wenig Klammern.
if (Bedingung1) or (Bedingung2) then wobei die Bedingungen auch Vergleiche sein können.

[edit] Sry, Willkommen in der DP [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Gloegg_FHBI
Gloegg_FHBI

Registriert seit: 28. Nov 2006
Ort: Neuss
46 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: Fehler : Operator auf diesem Operandentyp nicht anwendbar

  Alt 7. Mai 2013, 15:59
das OR hat eine stärkere Bindung als das =
du musst also nur die Klammern anders setzen:

if (zahl mod 3 = 0) OR (zahl mod 7 = 0) then

Hier ist die Rangfolge der Operatoren erklärt: wikibooks

PS: Bitte benutze die Delphi-Tags, wenn du Quellcode postest.

Geändert von Gloegg_FHBI ( 7. Mai 2013 um 16:02 Uhr)
  Mit Zitat antworten Zitat
ThaiSon96

Registriert seit: 7. Mai 2013
11 Beiträge
 
Delphi 7 Personal
 
#4

AW: Fehler : Operator auf diesem Operandentyp nicht anwendbar

  Alt 7. Mai 2013, 16:01
Zu wenig Klammern.
Wo kommen denn sonst noch Klammern hin? Hab bitte Nachsicht, bin Anfänger...

---

Hat sich erledigt!

Geändert von ThaiSon96 ( 7. Mai 2013 um 16:06 Uhr)
  Mit Zitat antworten Zitat
ThaiSon96

Registriert seit: 7. Mai 2013
11 Beiträge
 
Delphi 7 Personal
 
#5

AW: Fehler : Operator auf diesem Operandentyp nicht anwendbar

  Alt 7. Mai 2013, 16:05
Habe deinen rat befolgt, jedoch wird immernoch derselbe Fehler angezeigt...


PS: Bitte benutze die Delphi-Tags, wenn du Quellcode postest.
Was sind Delphi-Tags?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Fehler : Operator auf diesem Operandentyp nicht anwendbar

  Alt 7. Mai 2013, 16:06
Ich würde das mit dem Möööp nochmal überdenken

Ich bin auch noch nicht allzu lange in Delphi dabei und den Fehler mit den Klammern mache ich auch immer wieder. In anderen Sprachen ist die Bindung anders, da kann man sich die zusätzlichen Klammern sparen...

Richtigerweise muss es bei dir if ((zahl mod 3)=0) OR ((zahl mod 7)=0) then [...] lauten. Anderes Beispiel: if ((Bedingung1) or (Bedingung2)) and (Bedingung 3)) then [...]
PS: Was wir bislang alle übersehen haben ist die Tatsache, dass man mit Fließkommazahlen schlecht Modulo rechnen kann. Also musst du deine Zahl in eine normale Ganzzahl ändern (z.B. Integer statt Real).

Geändert von Der schöne Günther ( 7. Mai 2013 um 16:28 Uhr) Grund: Fließkommazahlen und Modulo
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Fehler : Operator auf diesem Operandentyp nicht anwendbar

  Alt 7. Mai 2013, 17:29
Siehste, das kommt davon, wenn keine Delphi-Tags gesetzt sind, sonst hätten wir das MOD gleich bemerkt
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 21:56 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