![]() |
Eigene Procedure aufrufen
Hallo,
ich habe eine eigene Procedure gemacht in dem ich einfach:
Delphi-Quellcode:
geschrieben habe.
procedure menue;
begin end; Jetzt will ich die procedure aufruffen indem ich in eine andere procedure geschrieben habe:
Delphi-Quellcode:
leider kommt der fehler:
menue;
[Fehler] Unit1.pas(454): Undefinierter Bezeichner: 'menue' was muss ich da definieren? ist sonst noch was falsch? |
Re: Eigene Procedure aufrufen
Hoi
Schreib die Deklaration vor den Aufruf. Gruss Shaman |
Re: Eigene Procedure aufrufen
Hi Ferdinand,
entweder du deklarierst die Prozedur im interface-Teil als forward
Delphi-Quellcode:
oder du deklarierst die Funktion vor der Funktion, in der du sie aufrufst.
procedure menue; forward;
Greetz alcaeus |
Re: Eigene Procedure aufrufen
hast du deine procedure als global sprich vor der implementation deklariert?
|
Re: Eigene Procedure aufrufen
Moin Ferby,
Prozedur und Aufruf stehen in der gleichen Unit: Die Prozedur muss vor dem Aufruf implementiert, oder aber im Interface Abschnitt der Unit angegeben werden. Beide stehen in Unterschiedlichen Units: Die Prozedur muss im Interface Abschnitt der Unit angegeben werden, in der sie implementiert wurde. Die Unit die die Prozedur enthält muss in einer der Uses Anweisungen stehen, in der die Prozedur aufgerufen werden soll. In Deinem Beispiel sollte hier die Angabe in der Uses Anweisung im Implementation Abschnitt genügen. |
Re: Eigene Procedure aufrufen
Hi Daniel,
Zitat:
Greetz alcaeus [add] Ich hab nur die halbe Wahrheit gesagt. Falls die beiden Prozeduren in unterschiedlichen Units stehen, beachte Christians Tipps ;) [/add] |
Re: Eigene Procedure aufrufen
Hallo,
ich habe ein paar sachen ausprobiert aber ich habe es nicht hin bekommen. kannst du mir ein programm beispiel geben wo eine eigene procedure aufgerufen wird? |
Re: Eigene Procedure aufrufen
Hi Ferdinand,
Zitat:
Delphi-Quellcode:
Nur als Beispiel.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin MeineProzedur; //dies funktioniert nicht end; procedure MeineProzedur; begin Showmessage('Hallo'); end; procedure TForm1.Button2Click(Sender: TObject); begin MeineProzedur; //dies funktioniert end; end. Greetz alcaeus |
Re: Eigene Procedure aufrufen
So zum Beispiel:
Delphi-Quellcode:
type
TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure HalloWelt; private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.HalloWelt; begin showmessage('Hallo Welt'); end; procedure TForm1.Button1Click(Sender: TObject); begin hallowelt; end; end. |
Re: Eigene Procedure aufrufen
öhm das mit dem forward muss mir mal erlären, dass kenn ich noch gar net, finde auch in der Hilfe nix dazu :)
kenne das nur so *hoffe das is richtig*
Delphi-Quellcode:
unit MainUnit;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, StdCtrls, ExtCtrls; type TForm1 = class(TForm) procedure test; //Hierrein gehts... Was das dann ist ka ^^ private { Private-Deklarationen } procedure test; //Hierrein gehts... ist dann ne private Procedure (kann man nur in der Unit benutzen) public { Public-Deklarationen } procedure test; //Hierrein gehts... ist dann ne public Procedure (kann man auch in anderen Units benutzen) end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.test; begin //da wär sie ^^ end; procedure TForm1.FormCreate(Sender: TObject); begin test; // Hier rufen wir sie auf :) end; end. Alles richtig erklärt? Vielleicht kann mir auch wer die Zeile "//Hierrein gehts... Was das dann ist ka ^^" erklären, dann hab ich meine wissenslücken geschlossen ^^ Ich tu sie eigendlich immer in public oder private rein... Edit: To Late :) MFG Keda |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 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