AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Fehler im Delphi-Code ganz am Ende beim Kompilieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler im Delphi-Code ganz am Ende beim Kompilieren

Ein Thema von lusthansa · begonnen am 7. Mär 2013 · letzter Beitrag vom 7. Mär 2013
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
lusthansa

Registriert seit: 7. Mär 2013
9 Beiträge
 
#1

Fehler im Delphi-Code ganz am Ende beim Kompilieren

  Alt 7. Mär 2013, 06:30
Delphi-Version: XE2
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 http://www.amazon.de/Borland-Delphi-...dp_ob_image_bk das Hanser-Buch dazu gekauft. Ich bin gerade in Kapitel 1.3.2 Einführungsbeispiel für Umsteiger ... da soll man einen Währungsumrechner programmieren. Das Programm macht man gar nicht selber, man kopiert aus dem Ebook nur den Quellcode und fügt ihn zwischen begin und end in eine Unit ein. Wenn ich das mache, dann kommt bei mir folgender Code raus:

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
  Mit Zitat antworten Zitat
DonManfred

Registriert seit: 8. Nov 2007
Ort: Düren
55 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren

  Alt 7. Mär 2013, 07:29
Delphi-Quellcode:
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
Da sich der Code in einem begin-end-Block befindet muss jeder Befehl mit einem Semikolon abgeschlossen sein.

also ":= s;"
  Mit Zitat antworten Zitat
pHL

Registriert seit: 27. Mai 2011
83 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren

  Alt 7. Mär 2013, 07:41
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
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren

  Alt 7. Mär 2013, 07:43
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
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
lusthansa

Registriert seit: 7. Mär 2013
9 Beiträge
 
#5

AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren

  Alt 7. Mär 2013, 07:49

Da sich der Code in einem begin-end-Block befindet muss jeder Befehl mit einem Semikolon abgeschlossen sein.

also ":= s;"
Hallo, DonManfred, das habe ich gemacht. Jetzt sieht der Quellcode so aus:

Delphi-Quellcode:
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;
Es gibt bei Start F9 weiterhin den Fehler:

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

Geändert von mkinzler ( 7. Mär 2013 um 07:54 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
lusthansa

Registriert seit: 7. Mär 2013
9 Beiträge
 
#6

AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren

  Alt 7. Mär 2013, 07:50
Edit: Sry hab übersehen dass es ja 2 Anweisungen sind also stimmt das mit dem Semikolon
Ich habe mal end. statt end; geschrieben, das hilft auch nicht weiter
  Mit Zitat antworten Zitat
lusthansa

Registriert seit: 7. Mär 2013
9 Beiträge
 
#7

AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren

  Alt 7. Mär 2013, 07:53
Mach doch oben mal Delphi-TAGS um den Quellcode damit man den lesen kann.
Was sind denn Delphi-Tags? (Bin totaler Anfänger). Der Code steht doch bereits im Forum drin. Ist er bei Dir unlesbar?

LG lusthansa
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren

  Alt 7. Mär 2013, 07:54
Edit: Sry hab übersehen dass es ja 2 Anweisungen sind also stimmt das mit dem Semikolon
Ich habe mal end. statt end; geschrieben, das hilft auch nicht weiter
Es fehlt am Ende noch ein end. (laut Compilermeldung)

Und bitte, bitte benutze die
Code:
[CODE]
[/CODE] und
Code:
[DELPHI][/DELPHI]
Tags
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#9

AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren

  Alt 7. Mär 2013, 07:54
Da sich der Code in einem begin-end-Block befindet muss jeder Befehl mit einem Semikolon abgeschlossen sein.
Das ist falsch - wir sind hier nicht im C++-Builder!

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.

Geändert von Delphi-Laie ( 7. Mär 2013 um 07:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#10

AW: Fehler im Delphi-Code ganz am Ende beim Kompilieren

  Alt 7. Mär 2013, 07:55
nicht STATT, zusätzlich ein end.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    

 

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 02:27 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