AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Operator ist auf diesen Operandentyp nicht anwendbar
Thema durchsuchen
Ansicht
Themen-Optionen

Operator ist auf diesen Operandentyp nicht anwendbar

Ein Thema von Avicenna · begonnen am 20. Jan 2008 · letzter Beitrag vom 20. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
Avicenna
(Gast)

n/a Beiträge
 
#1

Operator ist auf diesen Operandentyp nicht anwendbar

  Alt 20. Jan 2008, 16:23
Hallo,
folgender Fehler bringt mich noch zum Verzweifeln:

Zitat:
[Fehler] Unit1.pas(173): Operator ist auf diesen Operandentyp nicht anwendbar
Delphi-Quellcode:
  kreuz2.verschieben(posx-groesse div 10+round((sqrt(power(groesse div 10,2)-(power(groesse div 5,2)))div 2),posy-groesse+(round((sqrt(power(groesse div 10,2)-power(groesse div 5,2)div 2)));
kreuz2.groesseAendern(posx-groesse div 10-((sqrt(power(groesse div 10,2)-power(groesse div 5,2)div 2),posy-groesse+((sqrt(power(groesse div 10,2)-power(groesse div 5,2))div 2))- groesse div 50);
Der Fehler kommt in diesen zwei Zweilen bereits 4mal vor.

Was kann ich dagegen tun?

Vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Operator ist auf diesen Operandentyp nicht anwendbar

  Alt 20. Jan 2008, 16:25
sowas geht nicht:
groesse div 10,2 div geht nur für Ganzzahlen. Zudem gibt es 10,2 nicht sondern nur 10.2
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Operator ist auf diesen Operandentyp nicht anwendbar

  Alt 20. Jan 2008, 16:27
Zitat von SirThornberry:
sowas geht nicht:
groesse div 10,2 div geht nur für Ganzzahlen. Zudem gibt es 10,2 nicht sondern nur 10.2
das sind eigendlich die parameter für power xD
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Avicenna
(Gast)

n/a Beiträge
 
#4

Re: Operator ist auf diesen Operandentyp nicht anwendbar

  Alt 20. Jan 2008, 16:27
Aber meiner Internet-Recherche kann man so in Delphi Hochzahlen realisieren:

Zitat:
power(basis,exponenet);
Wobei math in die units aufgenommen werden muss.

EDIT: Wie dominikkv gerade geschrieben hat


Wo liegt denn dann der Fehler?
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Operator ist auf diesen Operandentyp nicht anwendbar

  Alt 20. Jan 2008, 16:28
x div 10.2 lässt sich umschreiben als:

"x * 10 div 102"

wird aber dann immernoch n ganzzahliges ergebnis haben...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Avicenna
(Gast)

n/a Beiträge
 
#6

Re: Operator ist auf diesen Operandentyp nicht anwendbar

  Alt 20. Jan 2008, 16:31
Zitat von DGL-luke:
x div 10.2 lässt sich umschreiben als:

"x * 10 div 102"

wird aber dann immernoch n ganzzahliges ergebnis haben...
Ich glaube, du hast denselben Fehler gemacht wie SirThornberry, oder verstehe ich das jetzt falsch? Es handelt sich ja nicht um 10,2 sondern um 10²
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#7

Re: Operator ist auf diesen Operandentyp nicht anwendbar

  Alt 20. Jan 2008, 16:36
und welchen Typen haben die Variablen?

es wäre auch bestimmt gut (übersichtlicher), wenn du diese Rechnung etwas aufteils.
außerdem wird einiges mehrmals berechnet ... einmal reicht ja


[quote="Avicenna"]Hallo,
folgender Fehler bringt mich noch zum Verzweifeln:

Zitat:
[Fehler] Unit1.pas(173): Operator ist auf diesen Operandentyp nicht anwendbar
in etwa so (falls ich keinen Fehler gemacht hab)
Code:
[s]G5 := groesse / 5.2;
G10 := groesse / 10.2;
P5 := power(G5);
P10 := power(G10);
S2 := sqrt(P10-P5) / 2;

kreuz2.verschieben(round(posx-groesse / 2 + S2),round(posy-groesse+S2));
kreuz2.groesseAendern(round(posx-groesse / 10-S2),round(posy-groesse - groesse / 50+S2));[/s]
Delphi-Quellcode:
P5 := power(groesse div 5, 2);
P10 := power(groesse div 10, 2);
S2 := sqrt(P10-P5) / 2;

kreuz2.verschieben(round(posx-groesse div 2 + S2),round(posy-groesse+S2));
kreuz2.groesseAendern(round(posx-groesse div 10-S2),round(posy-groesse - groesse div 50+S2));
aber sowas passiert nicht/weniger, wenn man ein bissl an Codeformatierung denkt und nicht immer alles zusammenfasst.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Operator ist auf diesen Operandentyp nicht anwendbar

  Alt 20. Jan 2008, 16:49
wenn man das mal so schreibt:
Delphi-Quellcode:
kreuz2.verschieben(
                   posx - groesse div 10 + round(
                                                 (
                                                  sqrt(
                                                       power(
                                                             groesse div 10, 2
                                                            ) - (
                                                                 power(
                                                                       groesse div 5, 2
                                                                      )
                                                                )
                                                      ) div 2
                                                 ),

                   posy - groesse + (
                                     round(
                                           (
                                            sqrt(
                                                 power(
                                                       groesse div 10, 2
                                                      ) - power(
                                                                groesse div 5,2
                                                               ) div 2
                                                )
                                           )
                                          );
sieht man das du sqrt() div 2 machst und das du eine klammer zu vergessen hast (bzw eine klammer zu viel auf nach dem ersten round)
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Avicenna
(Gast)

n/a Beiträge
 
#9

Re: Operator ist auf diesen Operandentyp nicht anwendbar

  Alt 20. Jan 2008, 17:05
Vielen Dank für eire Mühe!
Die Syntaxerrors konnte ich beseitgen, nun kommen aber die schlimmen Fehler: Fehlermeldungen, die das Programm zum Abstürzen bringen (siehe Anhang).

Was kann ich dagegen tun?

Gruß,
Avicenna
Miniaturansicht angehängter Grafiken
meldung_102.png  
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Operator ist auf diesen Operandentyp nicht anwendbar

  Alt 20. Jan 2008, 17:13
wie sieht jetzt dein quältext aus?
an welcher stelle kommt der fehler?
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:46 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