Autor Beitrag
lord tanas
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Do 09.06.05 10:19 
hi leutz,
ich hab ein problem, ich will für ein kleines projekt ein programm mit verschiedenen sortieralgorythmen erstellen, aber nachdem ich schon quicksort eingefügt habe passiert folgendes:
[highlight]
[Fehler] Ungenügende Forward- oder External-Deklaration: 'TForm1.Tausche'
[/highlight]
bei dem code (auszugsweise):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
    ...
    procedure tausche(var wert1,wert2 : integer);
    ...

    ...
    procedure tausche(var wert1,wert2 : integer);
    var h: integer;
    begin
    h:=wert2;wert2:=wert1;wert1:=h;
    end;
    ...

wo kann da mein fehler liegen ich hab dreimal alle schreibweisen der einzelnen prozeduren und funktionen nachgeprüft und keine fehler gefunden, eigentlich sind das ja peanuts aber hier bin ich überfragt..
please help :?

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Do 09.06.05 10:28 
Hallo und :welcome:

So wie es aussieht, hast du deine Prozedur Tausche als Prozedur der Klasse TForm1 deklariert. Dann muss es später auch heissen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.tausche(var wert1,wert2 : integer);   
var h: integer;   
begin   
  h:=wert2;wert2:=wert1;wert1:=h;   
end;


Besser wäre es allerdings, wenn du die Prozedur außerhalb von Form1 deklarierst, also in etwa so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
 
  procedure tausche(var wert1,wert2 : integer);
Dann kannst du die Implementation genauso lassen, wie sie ist. Denn das Tauschen von zwei Werten hat ja mit der Form an sich nix zu tun.

_________________
We are, we were and will not be.
JRegier
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1268

Win XP Home, Prof, 2003 Server
D6 Enterprise
BeitragVerfasst: Do 09.06.05 10:30 
user profile iconlord tanas hat folgendes geschrieben:
hi leutz,
ich hab ein problem, ich will für ein kleines projekt ein programm mit verschiedenen sortieralgorythmen erstellen, aber nachdem ich schon quicksort eingefügt habe passiert folgendes:
[highlight]
[Fehler] Ungenügende Forward- oder External-Deklaration: 'TForm1.Tausche'
[/highlight]
bei dem code (auszugsweise):
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
    ...
    procedure tausche(var wert1,wert2 : integer);
    ...

    ...
    procedure tausche(var wert1,wert2 : integer);
    var h: integer;
    begin
    h:=wert2;wert2:=wert1;wert1:=h;
    end;
    ...

wo kann da mein fehler liegen ich hab dreimal alle schreibweisen der einzelnen prozeduren und funktionen nachgeprüft und keine fehler gefunden, eigentlich sind das ja peanuts aber hier bin ich überfragt..
please help :?


Also diese Fehlermeldung wird angezeigt wenn die Prozedur deklariert wurde aber im
implementation Teil nicht definiert wurde oder in deinem Falle vieleicht die einzelnen
parts nicht in richtige bereiche geschrieben? wie interface implementation

oder

meine class heist z.B

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
type
TCocpit = class(TObject)
   procedur XYZ(..);
  private
  public
  end;

implementation


procedure TCocpit.XYZ(..)  // das TCocpit also der Classenname muß vor Prozedurname stehen
begin
  ....
end;