![]() |
Operator ist auf diesen Operandentyp nicht anwendbar
Hallo,
folgender Fehler bringt mich noch zum Verzweifeln: Zitat:
Delphi-Quellcode:
Der Fehler kommt in diesen zwei Zweilen bereits 4mal vor.
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); Was kann ich dagegen tun? Vielen Dank! |
Re: Operator ist auf diesen Operandentyp nicht anwendbar
sowas geht nicht:
Delphi-Quellcode:
div geht nur für Ganzzahlen. Zudem gibt es 10,2 nicht sondern nur 10.2
groesse div 10,2
|
Re: Operator ist auf diesen Operandentyp nicht anwendbar
Zitat:
|
Re: Operator ist auf diesen Operandentyp nicht anwendbar
Aber meiner Internet-Recherche kann man so in Delphi Hochzahlen realisieren:
Zitat:
EDIT: Wie dominikkv gerade geschrieben hat :) Wo liegt denn dann der Fehler? |
Re: Operator ist auf diesen Operandentyp nicht anwendbar
x div 10.2 lässt sich umschreiben als:
"x * 10 div 102" wird aber dann immernoch n ganzzahliges ergebnis haben... |
Re: Operator ist auf diesen Operandentyp nicht anwendbar
Zitat:
|
Re: Operator ist auf diesen Operandentyp nicht anwendbar
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 :angel: [quote="Avicenna"]Hallo, folgender Fehler bringt mich noch zum Verzweifeln: Zitat:
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:
aber sowas passiert nicht/weniger, wenn man ein bissl an Codeformatierung denkt und nicht immer alles zusammenfasst.
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)); |
Re: Operator ist auf diesen Operandentyp nicht anwendbar
wenn man das mal so schreibt:
Delphi-Quellcode:
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)
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 ) ) ); |
Re: Operator ist auf diesen Operandentyp nicht anwendbar
Liste der Anhänge anzeigen (Anzahl: 1)
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 |
Re: Operator ist auf diesen Operandentyp nicht anwendbar
wie sieht jetzt dein quältext aus?
an welcher stelle kommt der fehler? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 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