Entwickler-Ecke

Sonstiges (Delphi) - ungenügende forward- oder external-deklaration???


lord tanas - Do 09.06.05 10:19
Titel: ungenügende forward- oder external-deklaration???
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):

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


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:

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.


JRegier - Do 09.06.05 10:30
Titel: Re: ungenügende forward- oder external-deklaration???
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):

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


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;