![]() |
Delphi-Version: XE2
Fehler im Delphi-Code ganz am Ende beim Kompilieren
Hallo, ich habe die Entwicklungsumgebung Embarcadero RAD XE3. Das kann man in der Auswahl nicht einstellen. Ich habe einen 30tägigen Test. Ich bin Student und muss mir selber Delphi beibringen. Sonst kann ich kein Praktikum machen. Ich habe mir auf
![]() unit Beispiel2; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Button1: TButton; Edit3: TEdit; Label3: TLabel; procedure EditKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Form1.Close end; procedure TForm1.EditKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); var kurs, euro, dollar: Single; // Variablen, mit denen gerechnet wird s: string; code: Integer; // Hilfsvariablen begin // Werte aus Editierfeldern in Variablen einlesen und prüfen: Val(Form1.Edit1.Text, kurs, code); // Kurs einlesen if code <> 0 then Exit; Val(Form1.Edit2.Text, euro, code); // Euro einlesen if code <> 0 then Exit; Val(Form1.Edit3.Text, dollar, code); // Dollar einlesen if code <> 0 then Exit; // Berechnungen mit den Variablen durchführen: if Sender = Edit3 then euro := dollar * kurs // dollar wurde eingegeben else dollar := euro / kurs; // euro oder kurs wurden eingegeben // Werte der Variablen in den Editierfeldern anzeigen: if Sender = Edit3 then // dollar geändert begin Str(euro:8:2,s); Form1.Edit2.Text := s // Anzeige von euro (8 Stellen, // davon 2 Nachkomma) end else // kurs oder euro geändert begin Str(dollar:8:2,s); Form1.Edit3.Text := s // sonst Anzeige von dollar end end; wenn ich dann auf die Pfeiltaste mit dem roten Dingsda gehe (also Start (F9)), dann kommen zwei Fehler. Wenn ich dann auf OK gehe, wird die letzte Zeile in rot markiert angezeigt. Wie muss ich es richtig machen und warum? Danke und Gruß, Lusthansa |
AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren
Zitat:
also ":= s;" |
AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren
Hallo,
also ich brauch kein abschließendes Semikolon in einem begin - end solange sich nur eine Anweisung darin befindet. Ich glaub eher dass das abschließende "end." fehlt. MfG. Edit: Sry hab übersehen dass es ja 2 Anweisungen sind also stimmt das mit dem Semikolon :) |
AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren
Das müsste eig an der Stelle auch ohne semikolon gehen.
Mach doch oben mal Delphi-TAGS um den Quellcode damit man den lesen kann. Wenn Fehler kommen, wird auch ne Fehlermeldung dazu angezeigt. Wie lautet diese Meldung? Edit: Normalerweise benötigt die letzte Zeile vor einem End kein Semikolon. Ich tippe auch eher auf das "end." also mit Punkt am Ende |
AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren
Zitat:
Delphi-Quellcode:
Es gibt bei Start F9 weiterhin den Fehler:
unit Beispiel2;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Button1: TButton; Edit3: TEdit; Label3: TLabel; procedure EditKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Form1.Close end; procedure TForm1.EditKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); var kurs, euro, dollar: Single; // Variablen, mit denen gerechnet wird s: string; code: Integer; // Hilfsvariablen begin // Werte aus Editierfeldern in Variablen einlesen und prüfen: Val(Form1.Edit1.Text, kurs, code); // Kurs einlesen if code <> 0 then Exit; Val(Form1.Edit2.Text, euro, code); // Euro einlesen if code <> 0 then Exit; Val(Form1.Edit3.Text, dollar, code); // Dollar einlesen if code <> 0 then Exit; // Berechnungen mit den Variablen durchführen: if Sender = Edit3 then euro := dollar * kurs // dollar wurde eingegeben else dollar := euro / kurs; // euro oder kurs wurden eingegeben // Werte der Variablen in den Editierfeldern anzeigen: if Sender = Edit3 then // dollar geändert begin Str(euro:8:2,s); Form1.Edit2.Text := s; // Anzeige von euro (8 Stellen, // davon 2 Nachkomma) end else // kurs oder euro geändert begin Str(dollar:8:2,s); Form1.Edit3.Text := s; // sonst Anzeige von dollar end end; Abhängigkeiten des Projekts werden überprüft... Compilieren von Project1.dproj (Debug, Win32) dcc Befehlszeile für "Project1.dpr" c:\program files (x86)\embarcadero\rad studio\10.0\bin\dcc32.exe -$O- -$W+ --no-config -M -Q -TX.exe -AGenerics.Collections=System.Generics.Collections; Generics.Defaults=System.Generics.Defaults;WinType s=Windows;WinProcs=Windows;DbiTypes=BDE; DbiProcs=BDE;DbiErrs=BDE -DDEBUG -E.\Win32\Debug -I"c:\program files (x86)\embarcadero\rad studio\10.0\lib\Win32\debug\DE";"c:\program files (x86)\embarcadero\rad studio\10.0\lib\Win32\debug";"c:\program files (x86)\embarcadero\rad studio\10.0\lib\Win32\release\DE";"c:\program files (x86)\embarcadero\rad studio\10.0\lib\Win32\release";"\\psf\Home\Documen ts\RAD Studio\10.0\Imports";"c:\program files (x86)\embarcadero\rad studio\10.0\Imports";"C:\Users\Public\Documents\RA D Studio\10.0\Dcp";"c:\program files (x86)\embarcadero\rad studio\10.0\include" -LE"C:\Users\Public\Documents\RAD Studio\10.0\Bpl" -LN"C:\Users\Public\Documents\RAD Studio\10.0\Dcp" -N0.\Win32\Debug -NSWinapi;System.Win;Data.Win; Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;System;X ml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touc h;Vcl.Samples;Vcl.Shell; -O"c:\program files (x86)\embarcadero\rad studio\10.0\lib\Win32\release";"\\psf\Home\Documen ts\RAD Studio\10.0\Imports";"c:\program files (x86)\embarcadero\rad studio\10.0\Imports";"C:\Users\Public\Documents\RA D Studio\10.0\Dcp";"c:\program files (x86)\embarcadero\rad studio\10.0\include" -R"c:\program files (x86)\embarcadero\rad studio\10.0\lib\Win32\release\DE";"c:\program files (x86)\embarcadero\rad studio\10.0\lib\Win32\release"; "\\psf\Home\Documents\RAD Studio\10.0\Imports";"c:\program files (x86)\embarcadero\rad studio\10.0\Imports";"C:\Users\Public\Documents\RA D Studio\10.0\Dcp";"c:\program files (x86)\embarcadero\rad studio\10.0\include" -U"c:\program files (x86)\embarcadero\rad studio\10.0\lib\Win32\debug\DE";"c:\program files (x86)\embarcadero\rad studio\10.0\lib\Win32\debug";"c:\program files (x86)\embarcadero\rad studio\10.0\lib\Win32\release\DE";"c:\program files (x86)\embarcadero\rad studio\10.0\lib\Win32\release";"\\psf\Home\Documen ts\RAD Studio\10.0\Imports";"c:\program files (x86)\embarcadero\rad studio\10.0\Imports";"C:\Users\Public\Documents\RA D Studio\10.0\Dcp";"c:\program files (x86)\embarcadero\rad studio\10.0\include" -V -VN -NB"C:\Users\Public\Documents\RAD Studio\10.0\Dcp" -NH"C:\Users\Public\Documents\RAD Studio\10.0\hpp" -NO.\Win32\Debug Project1.dpr [dcc32 Warnung] Beispiel2.pas(55): W1057 Implizite String-Umwandlung von 'ShortString' zu 'string' [dcc32 Warnung] Beispiel2.pas(59): W1057 Implizite String-Umwandlung von 'ShortString' zu 'string' [dcc32 Fehler] Beispiel2.pas(63): E2029 Deklaration erwartet, aber Dateiende gefunden [dcc32 Fataler Fehler] Project1.dpr(5): F2063 Verwendete Unit 'Beispiel2.pas' kann nicht compiliert werden Misslungen Verstrichene Zeit: 00:00:00.3 Es scheint an was anderem zu liegen |
AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren
Zitat:
|
AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren
Zitat:
LG lusthansa |
AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren
Zitat:
Delphi-Quellcode:
(laut Compilermeldung)
end.
Und bitte, bitte benutze die
Code:
[/CODE] und
[CODE]
Code:
Tags
[DELPHI][/DELPHI]
|
AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren
Zitat:
Diesen Unfug, daß generell hinter jeder Anweisung ein Semikolon zu setzen sei, las ich sogar schon in einem Delphi-Buch. Woher das stammt, ist mir unklar (aus anderen Programmiersprachen?). Auch Quellcodes quellen in der Regel von diesen überflüssigen Semikola über. Nicht jeder Befehl muß mit einem Semikolon abgeschlossen werden, sondern es müssen nur zwischen den Befehlen ("Anweisungen") welche stehen. Da "end" keine Anweisung innerhalb dieses Blockes mehr ist, kann eben das letzte Semikolon entfallen. Zumindest ist es bis Delphi XE2 so. Kaum anzunehmen, daß ab XE3 die vielen überflüssigen Semikola plötzlich nötig sind. |
AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren
nicht STATT, zusätzlich ein end.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 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 by Thomas Breitkreuz