![]() |
Delphi-Version: 7
Ungenügende Forward-/External-Deklaration
Hallo, ich hab ein problem bei meinem Programm; ich arbeite gerade an einem Morse-Automaten; sobald "SOS" gesendet wird, soll eine Lampe erscheinen ("Warnlicht").
Code:
Dieser Fehler
type
TZustand =(A,Eins,Zwei,Drei,Vier,Fuenf,Sechs,S,O,Lampe ); TForm1 = class(TForm) Button1: TButton; Button2: TButton; Sh1: TShape; Warnlicht: TShape; procedure ProcEins (Eingabe : Integer); procedure ProcZwei (Eingabe : Integer); procedure ProcS (Eingabe : Integer); procedure ProcDrei (Eingabe : Integer); procedure ProcVier (Eingabe : Integer); procedure ProcO (Eingabe : Integer); procedure ProcFuenf (Eingabe : Integer); procedure ProcSechs (Eingabe : Integer); procedure ProcLampe (Eingabe : Integer); procedure ProcA (Eingabe : Integer); procedure FormActivate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Sh1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Zustand : TZustand; implementation
Code:
wiederholt sich dann für jede procedure.
[Fehler] Unit1.pas(16): Ungenügende Forward- oder External-Deklaration: 'TForm1.ProcEins'
Wegen anderen Problemen hab ich auch noch ein wenig mit dem Warnlicht bzw. Sh1. gespielt. (es wurde als undefinierter bezeichner angegeben obwohl ich den definitiv angegeben hab). Könnt ihr mir bitte helfen? Danke im Voraus & schöne Grüße! |
AW: Ungenügende Forward-/External-Deklaration
Du hast im interface Teil zwar gesagt, dass es eine Methode "TForm1.ProcEins" gibt, diese aber im implementation Teil nicht (oder nicht richtig) implementiert.
Wenn du es noch genauer wissen möchtest, zeig' noch etwas mehr Code ;-) |
AW: Ungenügende Forward-/External-Deklaration
Lass mich raten:
Du hast nach implementation sowas stehen?
Delphi-Quellcode:
Da fehlt das TForm1. davor, deshalb auch die Fehlermeldung. Gefunden wird ProcEins, gesucht aber TForm1.ProcEins, denn das ist ja eine Methode (einer Klasse) und keine einzelne Prozedur. ;-)
procedure ProcEins (Eingabe : Integer);
begin end;
Delphi-Quellcode:
Nebenbei gehören eigene Methoden besser unter private oder public statt in den Standardsichtbarkeitsbereich.
procedure TForm1.ProcEins(Eingabe : Integer);
begin end; |
AW: Ungenügende Forward-/External-Deklaration
Wenn du einen Aufzählungstyp wie diesen deklarierst:
Delphi-Quellcode:
TZustand =(A,Eins,Zwei,Drei,Vier,Fuenf,Sechs,S,O,Lampe );
Dann musst du darauf achten, dass die einzelne Werte genügend lange Bezeichner haben. Andernfalls könnte es später zu einer Namenskollision kommen.
Delphi-Quellcode:
// Prefix mz = "Morsezeichen"
TZustand =(mzA,mzEins,mzZwei,mzDrei,mzVier,...); |
AW: Ungenügende Forward-/External-Deklaration
Ich würde eher dazu raten SCOPEDENUMS zu aktivieren... (falls man eine passende Delphiversion hat)
![]() Dann schreibt man einfach TZustand.A und fertig. ;-) |
AW: Ungenügende Forward-/External-Deklaration
Zitat:
Zitat:
Bei $SCOPEDENUMS ON muß man es aber immer davorschreiben. |
Danke,
jetzt funktionierts. Eure Tipps haben mir sehr geholfen :) |
AW: Ungenügende Forward-/External-Deklaration
Zitat:
Aber wenn nicht, würde ich so immer sicherstellen, dass jeder den Typbezeichner benutzt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 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