Hi,
Zitat:
@Bloodhound : Versuche deinen Lehrer zu überzeugen, daß Du ihm ein perfektes Programm zeigen wirst, aber erst am Montag. Das könnte noch hinhauen. Dann zu den Fehlern :
Code:
Da fehlt am Schluß das ' (einfaches Apostroph) vor dem ;
fi := 'Wert für fi(die eingabe muss noch *(-1)genommen werden;
Am Anfang steht eins, alles was danach kommt, wird von Delphi als BESTANDTEIL des strings gewertet !! Auch das "end" in der nächsten Zeile, daher kommen die Fehler :!: Das ist mir noch an drei anderen Stellen aufgefallen. Achte unbedingt darauf, daß ' nur im PAAR auftreten darf !! Alles zwischen dem führenden ' und dem abschließenden ' ist KEIN Code, sondern ein String. Gruß Hansa |
Das hier ist noch schlimmer :
Code:
guck Dir mal Dein a und b an. :spin: Die stehen einfach so im Raum rum!
procedure TForm1.ErgebnisChange(Sender: TObject);
begin if checkbox1.checked then * btemp := b 'Wenn checkbox angehakt muss b mit pi multipliziert werden; else * btemp := floattostr(3,14159 * strtofloat(b)); DeinLabel.Caption := 'f(x) =' a + '*sin(btemp(x-' + (-fi) + '))'; Gruß Hansa |
Hallo,
wo muss das a und b denn stehen?? Ich kann das Projekt einfach nicht kompilieren, kann das daran liegen das das Prog in Delphi6 geschrieben wurde und ich ne Trial von Delphi 7 habe?? |
Wenn sie neuer als 30 Tage ist, muss es (bei den verwendeten Funktionen) gehen.
|
Zitat:
|
Jo das war auch dein Text ich dachte ich könnte das übernehmen!!
Wie kann ich selbiges Problem von dieser Basis ausgehend lösen??
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Math; type TForm1 = class(TForm) a: TEdit; b: TEdit; fi: TEdit; Ergebnis: TEdit; Berechnen: TButton; CheckBox1: TCheckBox; procedure aChange(Sender: TObject); procedure bChange(Sender: TObject); procedure fiChange(Sender: TObject); procedure ErgebnisChange(Sender: TObject); procedure BerechnenClick(Sender: TObject); procedure CheckBox1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.aChange(Sender: TObject); begin // end; procedure TForm1.bChange(Sender: TObject); begin // end; procedure TForm1.CheckBox1Click(Sender: TObject); begin // end; procedure TForm1.fiChange(Sender: TObject); begin // end; procedure TForm1.BerechnenClick(Sender: TObject); begin // end; procedure TForm1.ErgebnisChange(Sender: TObject); begin // end; end. |
Der Lehrer hat mir nochmal bis Freitag Zeit gegeben, musste ihm aber versprechen noch nen Handbuch mitzuschreiben, aber das ist ja kein Problem
|
Hi,
Nailor hat doch geschrieben a und b seien String- Variablen. Also mußt Du VAR a:string; und VAR b:string; irgendwo stehen haben. Bei Dir sind sie aber vom Typ TEdit. Willst Du den Wert verwenden, mußt Du a.Text, b.Text usw. verwenden !! Solange das mit den ' aber nicht klar ist, compiliert Dein Programm nie :!: Noch einmal : Dann ist dein Quelltext Bestandteil eines strings, also von irgendwelchen Daten. Die werden von keiner Programmiersprache als Anweisung interpretiert :!: Gruß Hansa |
So die String hab ich geändert, das mit den komentaren geht jetz denke ich auch in Ordnung
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Math; type TForm1 = class(TForm) a: TEdit; b: TEdit; fi: TEdit; Ergebnis: TEdit; Berechnen: TButton; CheckBox1: TCheckBox; procedure aChange(Sender: TObject); procedure bChange(Sender: TObject); procedure fiChange(Sender: TObject); procedure ErgebnisChange(Sender: TObject); procedure BerechnenClick(Sender: TObject); procedure CheckBox1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; a,b,fi: text; implementation {$R *.dfm} procedure TForm1.aChange(Sender: TObject); begin a := 'Wert für a'; end; procedure TForm1.bChange(Sender: TObject); begin b := floattostr(2 * 3.14159 // '2 * 3.14159geteilt durch eingabe ist b') end; procedure TForm1.CheckBox1Click(Sender: TObject); begin // end; procedure TForm1.fiChange(Sender: TObject); begin fi := 'Wert für fi(die eingabe muss noch *(-1)genommen werden'; end; procedure TForm1.BerechnenClick(Sender: TObject); begin // end; procedure TForm1.ErgebnisChange(Sender: TObject); begin if checkbox1.checked then * btemp := b 'Wenn checkbox angehakt muss b mit pi multipliziert werden'; else * btemp := floattostr(3,14159 * strtofloat(b)); DeinLabel.Caption := 'f(x) =' a + '*sin(btemp(x-' + (-fi) + '))'; end; end. |
Du willst jetzt aber nicht behauoten das sich das komplizieren lässt oder?!?!?!
Grüsse, Daniel :hi: |
:cry: :cry: :cry: :cry:Nee tuts sich leider auch nicht :cry: :cry:
|
Als erstes mach mal alle von den "'" weg. Den ein-strichigen Anführungszeichen :wink: , die haben in Delphi eine Bedeutung. Dann mach alles was geschrieben ist und keine Anweisung für Delphi ist (Kommentare) in {} (geschweifte Klammern).
|
Hättest DU jetzt behauptet das es geht, wär ich warscheinlich aus dem Fenster gesprungen, oder wenigstens mein Essen rausgeschmissen. ;)
Zitat:
Kommentare macht man NICHT! mit einem ' !!! Damit weisst man Strings Daten zu! Wenn DU eine Funktion hast die () hat, darfst DU nicht in den Klammern, // verwenden. Denn alles was dahinter kommt, ist ein Kommentar, egal ob Du ein ) schriebst oder nicht. Wenn DU in () was kommentieren willst, dann benutze { und } ! Aber nicht // in Klammern. Nochmal: //bis zum ende der Zeile!!! { von hier über mehrere Zeilen, bis hier } (* und das gleiche, über mehrere Zeilen, erreicht man auch hiermit *) Merke Dir das und höre bitte auf mit ' zu Kommentieren. Das geht NICHT! Du solltest nicht in Deinem ersten Programm die Namen so "verunstalten", das hast Du jetzt nämlich davon. Du verlierst die Übersicht, was was ist! Deswegen verstehst Du es nicht. //Oder hast schwierigkeiten... Grüsse, Daniel :hi: |
Liste der Anhänge anzeigen (Anzahl: 2)
:oops: Um Gottes willen spring nicht wer soll mir dann noch helfen?? :lol: :lol:
So die Komentare hab ich jetzt geändert war das mit den ' von C gewohnt und wusste net das die ' für die Strings sind Die geänderte file is im anhang, unter berücksichtigung das du C&P hasst |
Hallo Bloodhound,
es ist gar nicht notwendig, dem OnChange Event der einzelnen Editfeldern Code zuzuweisen. Dieses Event wird bei Eingabe jedes einzelnen Zeichens ausgelöst, aber du willst ja gar nichts mit dem "Zwischenergebnis" machen!? Du könntest hier eventuell prüfen, ob die Eingabe noch immer ein korrekter Float Wert ist und ggf. die Annahme des Zeichens verhindern. Dies könntest du jedoch -wie ich schon einnmal erwähnt hatte- einem MaskEdit Feld überlassen. Eigentlich bräuchtest du nur dem "Berechnen" Button Code zuweisen. Dieser sollte dann den Inhalt der 3 Editfelder prüfen und bei Erkennen eines Fehlers, das entsprechende Feld aktivieren (z.B. ActiveControl=Edit1). Sind alle Eingaben korrekt, wird das Ergebnis berechnet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:23 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