Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - result funktioniert nicht


Marmaran_1 - Mi 01.06.16 08:53
Titel: result funktioniert nicht
Hallo alle miteinander !
Ich arbeite zur Zeit an einem Programm zur Darstellung von Funktionen in Delphi 7.
Das Problem ist, dass result (in einer Funktion) nicht erkannt wird.
Unit1.pas(39): Undefinierter Bezeichner: 'result'
Ich habe alle Zeilen in der Funktion auskommentiert und zum Test result auf 5 gesetzt.
Ich begreife nur nicht, was ich falsch gemacht habe in allen anderen meiner Programmen hat das funktioniert.
Ich kann mir nicht vorstellen, dass ich an so einem simplen Code scheitere.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Math, ComCtrls;

type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    Panel1: TPanel;
    Button1: TButton;
    Edit1: TEdit;
    TrackBar1: TTrackBar;
    Label1: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Label2: TLabel;
    procedure Darstellen;
    procedure Button1Click(Sender: TObject);
  public
    dim : array[0..3of real;
    b,h : integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function irgendeinname : integer; 
begin
  result := 5;
  //hier sind eigentlich noch ein paar auskommentierte Befehle
end;

//hier noch weitere Prozeduren

end.


Vielleicht könnt ihr mir bei dem Problem helfen ;)

P.S. falls ihr fragt: die oben angegebenen Prozeduren existieren


Nersgatt - Mi 01.06.16 08:56

bei mir funktioniert das so.

Hast Du vielleicht noch im Interface-Teil eine Procedure(!) mit dem selben Namen wie die Function?


Marmaran_1 - Mi 01.06.16 09:22

Nein
es folgen nur noch die beiden Prozeduren. (keine weiteren Funktionen)

Delphi-Quelltext
1:
2:
3:
procedure TForm1.Darstellen;
// ...
procedure TForm1.Button1Click(Sender: TObject);


jaenicke - Mi 01.06.16 11:37

Ändere und kürze doch einfach mal deinen Quelltext soweit, dass du den gesamten Unitinhalt im Original hier posten kannst. Da ist garantiert noch etwas drin, das den Fehler verursacht und was du einfach beim Übertragen nicht als wichtig erachtet hast.

Und vielleicht findest du den Fehler beim Kürzen schon selbst. ;-)

Für uns wäre es auch kein Problem, wenn du die Unit wie sie ist komplett postest (falls du das möchtest ;-)). Du kannst sie mir auch per PN schicken, wenn du sie nicht veröffentlichen möchtest, dann poste ich hier nur das Ergebnis.


doublecross - Mi 01.06.16 11:54

Hallo,

das hört sich an, als wäre in deinem Compiler die Extendet Syntax [http://docwiki.embarcadero.com/RADStudio/Seattle/de/Erweiterte_Syntax_%28Delphi%29] nicht aktiviert somit erwartet er, dass du im klassischen Pascal Stil Programmierst. Demnach müsstest du um einen Wert zuück zu genen funktionsname := Wert; schreiben.

Normalerweise will man das aber nicht. Du kannst das ganze sicher irgendwo in den Einstellungen wieder Aktivieren. Alternativ kannst du aber auch am Anfang deiner dpr-Datein einfach ein {$X+} einfügen.


Gammatester - Mi 01.06.16 12:30

user profile icondoublecross hat folgendes geschrieben Zum zitierten Posting springen:
Alternativ kannst du aber auch am Anfang deiner dpr-Datein einfach ein {$X+} einfügen.
Das bringt natürlich für die Unit1 gar nichts. Wenn schon, dann auch dort einfügen.


doublecross - Mi 01.06.16 13:13

user profile iconGammatester hat folgendes geschrieben Zum zitierten Posting springen:
user profile icondoublecross hat folgendes geschrieben Zum zitierten Posting springen:
Alternativ kannst du aber auch am Anfang deiner dpr-Datein einfach ein {$X+} einfügen.
Das bringt natürlich für die Unit1 gar nichts. Wenn schon, dann auch dort einfügen.


Ich hatte das "Bereich: Global" in der Verlinkten Beschreibung [http://docwiki.embarcadero.com/RADStudio/Seattle/de/Erweiterte_Syntax_%28Delphi%29] so verstanden, dass es sich aufs gesamte Projekt bezieht. Daher habe ich auch die DPR, als Quellcode der als erstes Verarbeitet wird vorgeschlagen.

Falls ich mich irre muss es natürlich in jeder Unit eingetragen werden, dann macht es doch wieder Sinn die Option im Delphi zu suchen ;).


JoelH - Mi 01.06.16 13:13

user profile icondoublecross hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,

das hört sich an, als wäre in deinem Compiler die Extendet Syntax [http://docwiki.embarcadero.com/RADStudio/Seattle/de/Erweiterte_Syntax_%28Delphi%29] nicht aktiviert somit erwartet er, dass du im klassischen Pascal Stil Programmierst. Demnach müsstest du um einen Wert zuück zu genen funktionsname := Wert; schreiben.

Normalerweise will man das aber nicht. Du kannst das ganze sicher irgendwo in den Einstellungen wieder Aktivieren. Alternativ kannst du aber auch am Anfang deiner dpr-Datein einfach ein {$X+} einfügen.



Hab leider kein D7 hier, aber ich denke dort wirst du etwas ähnliches finden bei den Projektoptionen wie ich hier bei einem D2007 (älteste IDE, die ich hier noch installiert habe)

Erweiterete Syntax muss angehakt sein, sonst wirft er den Fehler. Siehe Anhang.


Marmaran_1 - Mi 01.06.16 21:09

Danke doublecross, jetzt gehts ;)

Ich habe alle deiner Varianten probiert und alle davon haben auch geklappt. Ich habe nun einfach in den Optionen Erweiterte Syntax wieder aktiviert. (ich muss das vermutlich mal aus Versehen deaktiviert haben ;))

Ich danke für die zahlreichen Antworten.


doublecross - Do 02.06.16 09:47

Hi,
user profile iconMarmaran_1 hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe alle deiner Varianten probiert und alle davon haben auch geklappt.

eine Vorteil muss es ja haben, wenn man ein alter Sack ist, der zu Turbo Pascal 6 Zeiten eingestiegen ist. Damals gab es noch keine Erweiterte Syntax (oder Sytax Highligting oder...), somit könnte ich auch ohne klarkommen - nur, wer will dass? ;)

user defined image


Marmaran_1 - So 05.06.16 19:25

Das mussten wir in der Schule auch mal machen. :? War nicht so toll :)


doublecross - Mo 06.06.16 10:53

Ich war damals sau Stolz auf mein TP6 die GUI war zwar nicht so schön wie die von Think Pascal [http://basalgangster.macgui.com/RetroMacComputing/The_Long_View/Entries/2010/3/20_MacPascal_and_Think_Technologies_files/MacPascalError.jpg], welches wir in der Ausbildung verwendeten, aber dafür haben wir es als Klassensatz (per Katalog, Internet war noch nicht) günstig geschossen und es war die damals noch aktuelle Version. Außerdem war man als DOS User erheblich schlimmeres gewohnt.

Technik entwickelt sich eben weiter - zum Glück.