AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Function/Procedure selbst als Parameter übergeben?
Thema durchsuchen
Ansicht
Themen-Optionen

Function/Procedure selbst als Parameter übergeben?

Ein Thema von Kostas · begonnen am 16. Jun 2004 · letzter Beitrag vom 18. Jun 2004
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Function/Procedure selbst als Parameter übergeben?

  Alt 16. Jun 2004, 17:53
Hallo Zusammen,

wie kann ich eine Procedure oder Function als Parameter einer
anderen Procedure oder Function übergeben?

.. Ist etwas schwer zu beschreiben ein Beispiel

Procedure ProcInnen;
begin
...
end;

procedure Aussen(MyProc :was?); <<<als Parameter ProcInnen übergeben
if irgendwas then MyProc <<< aufrufen
...
end;

Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Function/Procedure selbst als Parameter übergeben?

  Alt 16. Jun 2004, 18:05
Du kannst den Rückgabewert einer Funktion als Parameter einer anderen Funktion übergeben. Eine Prozedur kannst du aber meines Wissens nach nicht, da diese ja keinen Rückgabewert hat. Und Parameter sind nunmal für Werte geschaffen worden.

Greetz
alcaeus

PS: Ich weiß nicht ob ich dich genau verstanden hab, erklärs im Notfall genauer...
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Function/Procedure selbst als Parameter übergeben?

  Alt 16. Jun 2004, 18:13
Zitat von Kostas:
wie kann ich eine Procedure oder Function als Parameter einer
anderen Procedure oder Function übergeben?

.. Ist etwas schwer zu beschreiben ein Beispiel

Procedure ProcInnen;
begin
...
end;

procedure Aussen(MyProc :was?); <<<als Parameter ProcInnen übergeben
if irgendwas then MyProc <<< aufrufen
...
end;
Delphi-Quellcode:
// TProcedure ist in SysUtils deklariert
procedure Aussen(MyProc :TProcedure);
begin
   if Assigned(MyProc) then // prüfe auf nil Zeiger
      MyProc; // aufrufen
end;

// Test
begin
   Aussen(ProcInnen);
   Aussen(nil); // auch zulässig
   Aussen(Randomize); // auch zulässig, da Randomize dem Typ TProcedure entspricht
end;
Ein Beispiel, bei dem die Procedure auch Parameter hat findest du unter Code Library (nächster oder vorhergehender Arbeitstag)
Andreas
  Mit Zitat antworten Zitat
Skyruner2

Registriert seit: 26. Okt 2003
93 Beiträge
 
Delphi 7 Professional
 
#4

Re: Function/Procedure selbst als Parameter übergeben?

  Alt 16. Jun 2004, 21:15
und wofür brauch man soetwas??
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Function/Procedure selbst als Parameter übergeben?

  Alt 16. Jun 2004, 21:45
Callback-Prozeduren und Events. Ohne das gäb es keine Nachrichtenfunktionen und auch keine ButtonClicks
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Skyruner2

Registriert seit: 26. Okt 2003
93 Beiträge
 
Delphi 7 Professional
 
#6

Re: Function/Procedure selbst als Parameter übergeben?

  Alt 16. Jun 2004, 23:06
hmmm könntest du das bitte genauer erläutern ?


  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Function/Procedure selbst als Parameter übergeben?

  Alt 17. Jun 2004, 13:45
Ein Event (also beispielsweise ein Klick eines Buttons) ist in VCL-Komponenten als Zeiger auf eine Methode deklariert. Um jetzt bei einem Button-Click wirklich Code auszuführen, muss die Instanz der Komponente ja wissen, was sie ausführen muss. Dafür wird eine eigene Methode geschrieben (deine ButtonClick-Methode) und einen Zeiger auf diese Methode als Event gesetzt.
Wäre das nicht möglich, müsstest du für jeden Button, den du benutzt, eine eigene Klasse von TButton ableiten.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
maestro

Registriert seit: 15. Jun 2002
23 Beiträge
 
Delphi 7 Professional
 
#8

Re: Function/Procedure selbst als Parameter übergeben?

  Alt 17. Jun 2004, 15:28
Zitat von Kostas:
wie kann ich eine Procedure oder Function als Parameter einer
anderen Procedure oder Function übergeben?
Klar geht das - du übergibst einen Zeiger auf die Funktion bzw. Prozedur. Siehe auch hier: http://www.delphi-source.de/grundlag...ionszeiger.php
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

Re: Function/Procedure selbst als Parameter übergeben?

  Alt 18. Jun 2004, 13:12
Volltreffer Leute, genau das habe ich gemeint.
Besten Dank dafür.

Gruß Kostas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz