Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Eigene Procedure aufrufen (https://www.delphipraxis.net/30167-eigene-procedure-aufrufen.html)

ferby 21. Sep 2004 15:55


Eigene Procedure aufrufen
 
Hallo,

ich habe eine eigene Procedure gemacht in dem ich einfach:

Delphi-Quellcode:
procedure menue;
begin
end;
geschrieben habe.

Jetzt will ich die procedure aufruffen indem ich in eine andere procedure geschrieben habe:

Delphi-Quellcode:
menue;
leider kommt der fehler:

[Fehler] Unit1.pas(454): Undefinierter Bezeichner: 'menue'


was muss ich da definieren? ist sonst noch was falsch?

Shaman 21. Sep 2004 15:57

Re: Eigene Procedure aufrufen
 
Hoi

Schreib die Deklaration vor den Aufruf.

Gruss
Shaman

alcaeus 21. Sep 2004 15:58

Re: Eigene Procedure aufrufen
 
Hi Ferdinand,

entweder du deklarierst die Prozedur im interface-Teil als forward
Delphi-Quellcode:
procedure menue; forward;
oder du deklarierst die Funktion vor der Funktion, in der du sie aufrufst.

Greetz
alcaeus

static_cast 21. Sep 2004 16:00

Re: Eigene Procedure aufrufen
 
hast du deine procedure als global sprich vor der implementation deklariert?

Christian Seehase 21. Sep 2004 16:02

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.

alcaeus 21. Sep 2004 16:02

Re: Eigene Procedure aufrufen
 
Hi Daniel,

Zitat:

Zitat von static_cast
hast du deine procedure als global sprich vor der implementation deklariert?

das muss man nicht unbedingt. Wichtig ist, dass sie irgendwie vor dem Aufruf deklariert wurde. Ob mit forward oder ganz normal nach implementation ist egal. Wichtig ist, dass sie deklariert wurde.

Greetz
alcaeus

[add]
Ich hab nur die halbe Wahrheit gesagt. Falls die beiden Prozeduren in unterschiedlichen Units stehen, beachte Christians Tipps ;)
[/add]

ferby 21. Sep 2004 16:03

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?

alcaeus 21. Sep 2004 16:05

Re: Eigene Procedure aufrufen
 
Hi Ferdinand,

Zitat:

Zitat von ferby
kannst du mir ein programm beispiel geben wo eine eigene procedure aufgerufen wird?

Delphi-Quellcode:
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.
Nur als Beispiel.

Greetz
alcaeus

Nikolas 21. Sep 2004 16:06

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.

Kedariodakon 21. Sep 2004 16:14

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.
Seite 1 von 3  1 23      

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