Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehler bei Eintrag unter "Interface" (https://www.delphipraxis.net/29588-fehler-bei-eintrag-unter-interface.html)

gordon freeman 11. Sep 2004 11:19


Fehler bei Eintrag unter "Interface"
 
Hi Leute,
ich habe in unit1 folgendes Stehen:
Delphi-Quellcode:
unit unit1;

interface

   procedure ordner;

uses
   Windows, Messages, etc....

type
   TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1.click(Sender: TObject);

private
   {Private-Deklarationen}
public
   {Public-Deklarationen}
end;

var
  Form1: TForm1;

implementation

procedure ordner;
begin
  {Quelltext der Prozedur}
end;

uses unit2;

{$R *.DFM}


procedure TForm1.Button1.Click(Sender:TOBject);
begin
   {Quelltext des Buttons}
end;

end.
Nun taucht bei "Uses" der Fehler auf,
"...dass eine Deklaration erwartet wurde, aber Uses gefunden wird." :freak:

Könnt ihr mir sagen, wieso? Die Prozedur Ordner muss doch unter interface aufgelistet sein und unter implementation definiert, damit eine andere Unit darauf zugreifen kann, oder gibt es noch andere Möglichkeiten? Bin für alle Lösungsansätze dankbar.

Chewie 11. Sep 2004 11:30

Re: Fehler bei Eintrag unter "Interface"
 
Versuch mal, die uses-Klausel vor jeder Deklaration anzubringen.

gordon freeman 11. Sep 2004 14:20

Re: Fehler bei Eintrag unter "Interface"
 
Zitat:

Zitat von Chewie
Versuch mal, die uses-Klausel vor jeder Deklaration anzubringen.

Hab ich gemacht, dann kommt
Delphi-Quellcode:
Interface erwartet, aber Uses gefunden.
IMHO steht das Interface an der richtigen Stelle, aber vieleicht ist die Prozeduren-Nennung falsch?

Gruber_Hans_12345 11. Sep 2004 15:42

Re: Fehler bei Eintrag unter "Interface"
 
ich würds so probieren !
Delphi-Quellcode:
unit unit1;

interface

uses
   Windows, Messages, etc....

type
   TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1.click(Sender: TObject);

private
   {Private-Deklarationen}
public
   {Public-Deklarationen}
end;

   procedure ordner;
var
  Form1: TForm1;

implementation

uses unit2;

{$R *.DFM}

procedure ordner;
begin
  {Quelltext der Prozedur}
end;

procedure TForm1.Button1.Click(Sender:TOBject);
begin
   {Quelltext des Buttons}
end;

end.
Gruss
Hans

Christian Seehase 11. Sep 2004 18:19

Re: Fehler bei Eintrag unter "Interface"
 
Moin Gordon,

erstelle mal ein neues Projekt, und schau Dir einfach mal den oberen Abschnitt der ersten Unit an.

gordon freeman 12. Sep 2004 09:38

Re: Fehler bei Eintrag unter "Interface"
 
Zitat:

Zitat von Christian Seehase
Moin Gordon,

erstelle mal ein neues Projekt, und schau Dir einfach mal den oberen Abschnitt der ersten Unit an.

Tut mir leid, aber die große Erleuchtung ( :idea: ) ist mir jetzt nicht gekommen. :cry:


@Hans Jetzt gibt er zumindest bei der procedure ordner keinen Fehler mehr raus, aber wenn ich in Form2 eintrage
Delphi-Quellcode:
form1.ordner;
sagt er
Delphi-Quellcode:
undefinierter Bezeichner "ordner"
Was fehlt denn nun noch? :(

Die Muhkuh 12. Sep 2004 10:15

Re: Fehler bei Eintrag unter "Interface"
 
Delphi-Quellcode:
unit unit1;

interface

uses
   Windows, Messages, etc....

type
   TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1.click(Sender: TObject);

private
   {Private-Deklarationen}
public
   {Public-Deklarationen}
  procedure ordner; //<-- Hierhin die Procedure verschieben
end;

var
  Form1: TForm1;

implementation

uses unit2;

{$R *.DFM}

procedure Form1.ordner; //<-- Hier noch Form1. hinschreiben!
begin
  {Quelltext der Prozedur}
end;

procedure TForm1.Button1.Click(Sender:TOBject);
begin
   {Quelltext des Buttons}
end;

end.

gordon freeman 12. Sep 2004 13:01

Re: Fehler bei Eintrag unter "Interface"
 
Zitat:

Zitat von Spider
Delphi-Quellcode:
unit unit1;

interface

uses
   Windows, Messages, etc....

type
   TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1.click(Sender: TObject);

private
   {Private-Deklarationen}
public
   {Public-Deklarationen}
  procedure ordner; //<-- Fehler 1
end;

var
  Form1: TForm1;

implementation

uses unit2;

{$R *.DFM}

procedure Form1.ordner; //<-- Fehler 2
begin
  {Quelltext der Prozedur}
end;

procedure TForm1.Button1.Click(Sender:TOBject);
begin
   {Quelltext des Buttons}
end;

end.

@Spider habe es jetzt so gemacht, wie du geschrieben hast, bei Fehler 1 sagt er:
Delphi-Quellcode:
Ungenügende Forward- oder External-Deklaration bei TForm1.Ordner;
Bei Fehler2 sagt er:
Delphi-Quellcode:
Bezeichner redefiniert: 'form1'
:wall: Was mach ich nur immer falsch? :wall:

[Edit] Lösung gefunden Bei Fehler2 muss
Delphi-Quellcode:
TForm1.ordner
stehen. Dann funzt es auch!!! Danke an alle für die Hilfe :dp:

Christian Seehase 12. Sep 2004 16:43

Re: Fehler bei Eintrag unter "Interface"
 
Moin Gordon,

dann hier mal die Auflösung des Rätsels ;-):
Mein Vorschlag sollte Dir zeigen, dass Uses unmittelbar auf Interface folgen muss.
(ausser man muss/will Units im Implemenation Abschnitt angeben, dann muss uses unmittelbar auf implemenation folgen)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz