| Autor |
Beitrag |
tobby_d
Hält's aus hier
Beiträge: 5
WIN XP
D7 Ente
|
Verfasst: Mo 26.04.04 22:26
Hi!
Ich programmier im Moment nicht mit den Delphi-Formularen sondern direkt über die Windows-API mit CreateWindowEx usw.
Wenn ich da jetzt versuch, die Mathe-Funktionen zu benutzen, kommt bei mir immer folgende Compiler-Fehlermeldung:
[Fehler] Project1.dpr(332): Operator oder Semikolon fehlt.
Hat hier jemand ne Ahnung, woran das liegen kann? Ich hab schon alles mögliche probiert, bei den normalen Formularen funktioniert das, bei nonVCL nicht. Es klappen weder die Funktionen aus "System", wie sqr(), sqrt(), sin() cos() usw, noch die aus "Math" (tan() ).
Ich hab an allen möglichen Stellen folgenden Code ausprobiert:
Delphi-Quelltext 1: 2: 3:
| zahl1:=tan(StrToFloat(temp)); zahl1:=sqr(25); zahl1:=sqrt(zahl2); usw. |
wobei zahl1+2 jew vom Typ Real waren und temp ein String.
Ich hab auch schon im Forum gesucht, aber nichts gefunden
Ich würde mich über eine Antwort freuen, Toby
Moderiert von UGrohne: Delphi-Tags hinzugefügt
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 27.04.04 09:38
Äh, mal ganz dumm: Der Fehler besagt, dass du einen Operator bzw. ein Semikolon vergessen hast. Und wenn er dir die Zeile 332 meldet, dann ist das entweder in selbiger oder in der Zeile davor (331).
Es wäre daher zweckmäßig wenn du deinen Code mal daraufhin überprüfst. Und wenn das alles nichts hilft, dann bringe den kompletten Codeblock, damit wir mehr sehen als nur 3 Zeilen. Und benutze bitte zum Einklammern das [delphi]-Tag, dafür ist´s ja da:
Quelltext 1: 2: 3:
| [delphi]zahl1:=tan(StrToFloat(temp)); zahl1:=sqr(25); zahl1:=sqrt(zahl2);[/delphi] |
|
|
tobby_d 
Hält's aus hier
Beiträge: 5
WIN XP
D7 Ente
|
Verfasst: Mi 28.04.04 15:44
Ich hab eigentlich als erstes nachgeguckt, ob ich irgendwo ein Semikolon vergessen hab, aber wenn ich jetzt kein Brett vor meinem Kopf hab, müsste von der Syntax eigentlich alles stimmern. Hier der komplette Code der Procedure:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure BtsqrClick(hWnd: HWND); begin try updatebuffer(hWnd);
zahl1:=sqr(StrToFloat(EdErgebnisText)); setWindowText(EdErgebnis,PChar(FloatToStr(zahl1))); operator:='='; except on e: exception do MessageBox(0,PChar('Es ist folgender Fehler aufgetreten: '+#13+#13+'"'+e.Message+'".'),'Achtung',0); end; end; |
Die Procedure ist aus einem selbstgebauten Taschenrechner. updatebuffer(hWnd) holt u.a. den Text aus einem Edit-Feld in die Variable EdErgebnisText, der Rest ist nicht wichtig, funktioniert auch ohne updatebuffer nich. zahl1 ist eine globale Variable vom Typ Real. Ich habs auch schon mit einer lokalen Variablen ausprobiert, hat keine Wirkung. Statt StrToFloat(EdErgebnisText)) hatte ich auch schon Zahlen eingesetzt, funktioniert trotzdem nicht.
Nach dem gleichen Schema hab ich auch noch sqrt, sin, cos und tan ausprobiert.
Trotzdem Danke für die Antwort, Tobby_D!
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 28.04.04 16:06
Also, es tut mir leid, aber ich finde keinen Fehler. Ich zweifle deine Aussage nicht an, aber ich hab´s eben mit Delphi 5 Pro und Delphi 7 Pro getestet. Ich gehe mal davon aus, dass die Enterprise-Version von D7 zwar erweitert ist, aber in solchen grundlegenden Dingen nicht anders funktioniert als die kleineren Versionen.
Du musst den Fehler wohl oder übel an anderer Stelle suchen, denn im von dir geposteten Block ist er nicht ... nicht bei mir ...
|
|
tobby_d 
Hält's aus hier
Beiträge: 5
WIN XP
D7 Ente
|
Verfasst: Do 29.04.04 11:37
Tut mir leid, ich find den Fehler zwar auch nicht, aber er muss trotzdem irgendwo in meinem Programm sein. Wenn ich nämlich jetzt ein neues Formular erzeuge, (ohne die ganzen anderen Prozeduren) funktioniert das auf einmal irgendwie doch. Der Rest von meinem Programm funktioniert auch fehlerfrei, außer den entsprechenden Zeilen. Pi ist komischerweise auch auf einmal 23.
Trotzdem Danke fürs ausprobieren
Tobby_D
|
|
Sven
      
Beiträge: 314
D6 Ent, K3 Pro (patched)
|
Verfasst: Do 29.04.04 11:54
| tobby_d hat folgendes geschrieben: |
[Fehler] Project1.dpr(332): Operator oder Semikolon fehlt.
|
Könntest Du mal bitte den kompletten Quellcode deiner DPR-Datei posten  Denn schließlich wurde auch in dieser der Fehler gemeldet.
_________________ MDK 9.1, Kernel 2.4.21, KDE 3.1 Kylix 3 Pro (patched), nutze aber auch Windows
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Do 29.04.04 14:12
| Sven hat folgendes geschrieben: | Könntest Du mal bitte den kompletten Quellcode deiner DPR-Datei posten Denn schließlich wurde auch in dieser der Fehler gemeldet. |
Um Himmels Willen!
Wenn, dann bitte nicht in den Post sondern auf einen Webserver legen. Wenn es mindestens 300 Zeilen sind, wird der Thread zu unübersichtlich.
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
tobby_d 
Hält's aus hier
Beiträge: 5
WIN XP
D7 Ente
|
Verfasst: Fr 30.04.04 15:45
Ich hab jetzt mal den kompletten Quellcode online gestellt. Der ist relativ umfangreich, aber wenn trotzdem mal jemand reinguckt, würde ich mich echt freuen. Der Link ist:
www.blaue-husaren.com/tmp/Project1.dpr
falls jemand auch die .dof- und die .cfg-Dateien sehen möchte:
www.blaue-husaren.com/tmp/Project1.dof
www.blaue-husaren.com/tmp/Project1.cfg
Das Programm ist ein simpler Taschenrechner, der aber auch Funktionen wie sinus und cosinus usw. haben sollte.
Mit {$DEFINE USEMATH} kann man die entwprechenden Fehlerzeilen ausführen lassen, ansonsten werden diese einfach übersprungen.
Bis denn, Tobby_D
|
|
tobby_d 
Hält's aus hier
Beiträge: 5
WIN XP
D7 Ente
|
Verfasst: Fr 30.04.04 16:08
Ich bin so ein Idiot...
Es tut mir wirklich leid, dass ihr euch mit diesem Thema beschäftigen mußtet, aber es hat sich mal wieder bestätigt, dass der größte Computerfehler vorm Bildschirm sitzt. Ich Trottel hab vorne im Programm u.a. Pi, Sin, Cos und Tan als Konstanten definiert, weil die ganzen Buttons in einem Array gespeichert hatte und ich dann z.B. den Pi-Button mit Buttons[Pi] aufgerufen hab... Somit konnten diese Funktionen überhaupt nicht funktionierten aber der Rest vom Programm lief problemlos.
Bis denn, Tobby_D
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 30.04.04 16:21
Einsicht ist der erste Weg zur Besserung.
Soll heißen: Aus dir kann noch ein Genie werden! 
|
|