![]() |
[function] Ungenügend Forward- oder External-Deklaration
Moin Moin liebe DP'ler ;),
hab ne funktion geschrieben die sich um das Anmelden von benutzern kümmern soll. Ich bekomm die Fehlermeldung... [DCC Fehler] form.login.pas(26): E2065 Ungenügend Forward- oder External-Deklaration: 'TfLogin.Anmeldung' meine Deklaration sieht folgendermaßen aus:
Delphi-Quellcode:
Die Definition:
function Anmeldung(User, Password: String):Boolean;
Delphi-Quellcode:
Und der Aufruf:
function Anmeldung(User, Password: String):Boolean;
begin if Databases.tUser.Locate('Benutzername', User, [loCaseInsensitive]) then begin if Databases.tUser.Locate('Kennwort', Password, [loCaseInsensitive]) then begin Result:= True; end else begin Result:= False; end; end else begin Result:= False; end; end;
Delphi-Quellcode:
In der Hilfe steht ...
procedure TfLogin.bitbtnAnmeldenClick(Sender: TObject);
begin Anmeldung(eBenutzername.Text, eKennwort.Text); end; Diese Fehlermeldung tritt auf, wenn eine forward- oder external-Deklaration einer Prozedur bzw. Funktion oder eine Methodendeklaration in einem Klassen- bzw. Objekttyp vorhanden ist, aber die Prozedur, Funktion oder Methode nicht definiert wird. Möglicherweise fehlt die Definition, oder ihr Name wurde falsch geschrieben. Beachten Sie, dass eine Prozedur- oder Funktionsdeklaration im interface-Abschnitt einer Unit einer forward-Deklaration entspricht. Die zugehörige Implementierung (der Quelltext der Routine) muss dann im implementation-Abschnitt erstellt werden. Ebenso entspricht eine Methodendeklaration in einem Klassen- oder Objekttyp einer forward-Deklaration. Ich seh aber keinen Fehler :( Könnt ihr mir helfen? Danke schon mal im vorraus ;) Euer f4k3 |
Re: [function] Ungenügend Forward- oder External-Deklaration
Hast du die Methode denn auch innerhalb der Form (ich gehe davon aus, dass TfLogin ein TForm ist) deklariert?
Edit: Quatsch, nehme alles zurück, hab nicht genau genug hingeschaut... dachte es ging um die Methode aus dem letzten Quelltext, nicht um den Aufruf in der Methode :oops: |
Re: [function] Ungenügend Forward- oder External-Deklaration
Zitat:
Delphi-Quellcode:
Ja ist innerhalb des TForm Abschnitts und ja TFLogin ist ein TForm
type
TfLogin = class(TForm) lAnmeldung: TLabel; imgBackground: TImage; bitbtnAnmelden: TBitBtn; bitbtnAbbrechen: TBitBtn; pAnmeldung: TPanel; eBenutzername: TEdit; eKennwort: TEdit; lKennwort: TLabel; lBenutzername: TLabel; pBenutzerbild: TPanel; imgBenutzerbild: TImage; procedure FormCreate(Sender: TObject); procedure eBenutzernameExit(Sender: TObject); procedure eKennwortKeyPress(Sender: TObject; var Key: Char); procedure bitbtnAnmeldenClick(Sender: TObject); function Anmeldung(User, Password: String):Boolean; private { Private-Deklarationen } public { Public-Deklarationen } end; |
Re: [function] Ungenügend Forward- oder External-Deklaration
Aha, dann lag ich ja ungewollt doch fast richtig :stupid:
Dann handelt es sich also bei beiden Funktionen/Prozeduren, die du gepostet hast, um Methoden von TfLogin. Fällt dir dann ein Unterschied in der Definition auf? :stupid: Setz mal bei der Definition von "Anmeldung" noch das "TfLogin." davor :mrgreen: |
Re: [function] Ungenügend Forward- oder External-Deklaration
Und setz mal die Deklaration in den private-Bereich.
|
Re: [function] Ungenügend Forward- oder External-Deklaration
Zitat:
|
Re: [function] Ungenügend Forward- oder External-Deklaration
Ist es eine Methode, die von aussen aufgerufen werden kann, soll, muss? Wenn du diese Fragen mit nein beantwortest, gehört sie in den private-Abschnitt der Klasse und hat nichts im öffentlichen Abschnitt verloren.
|
Re: [function] Ungenügend Forward- oder External-Deklaration
Zitat:
Hier sind die "Eventmethoden" wie OnCreate, OnClick, usw. Eigene Deklarationen haben dort nichts verloren, bzw. werden ignoriert. |
Re: [function] Ungenügend Forward- oder External-Deklaration
Zitat:
Dennoch: Guter Stil ist es nicht, denn dafür gibt es die Abschnitte private/protected/public. Sherlock |
Re: [function] Ungenügend Forward- oder External-Deklaration
Zitat:
Zitat:
Funzt alles wunderbar ... und habs nun auch in den Privat-bereich verschoben ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:07 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