Autor Beitrag
Marmaran_1
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 01.06.16 08:53 
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.

ausblenden volle Höhe 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


Zuletzt bearbeitet von Marmaran_1 am Mi 01.06.16 09:37, insgesamt 1-mal bearbeitet
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1580
Erhaltene Danke: 278


Delphi 10 Seattle Prof.
BeitragVerfasst: 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?

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Marmaran_1 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 01.06.16 09:22 
Nein
es folgen nur noch die beiden Prozeduren. (keine weiteren Funktionen)
ausblenden Delphi-Quelltext
1:
2:
3:
procedure TForm1.Darstellen;
// ...
procedure TForm1.Button1Click(Sender: TObject);
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18853
Erhaltene Danke: 1657

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 149
Erhaltene Danke: 27

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: Mi 01.06.16 11:54 
Hallo,

das hört sich an, als wäre in deinem Compiler die Extendet Syntax 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.

Für diesen Beitrag haben gedankt: Marmaran_1
Gammatester
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 328
Erhaltene Danke: 101



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 149
Erhaltene Danke: 27

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: 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 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 798
Erhaltene Danke: 17

Win10
Delphi XE7/Tokyo Prof.
BeitragVerfasst: 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 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.
Einloggen, um Attachments anzusehen!
_________________
mfg. Joel
Marmaran_1 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 149
Erhaltene Danke: 27

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 05.06.16 19:25 
Das mussten wir in der Schule auch mal machen. :? War nicht so toll :)
doublecross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 149
Erhaltene Danke: 27

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: 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, 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.