![]() |
Funktion oder Proz. übergeben
Guten Abend.
Ich hab gesehen, dass man einer Prozedur/Funktion als Parameter eine Prozedur/Funktion übergeben kann:
Delphi-Quellcode:
Aber man muss in der Deklaration von TFunc die Parameter angeben,
type
TFunc= procedure(Parameter: Char): Byte; function X(Proc: TFunc): Real; geht das auch irgendwie ohne, so dass ich der Funktion X irgendeine Funtion als Parameter übergebe?? Oder muss die Parameterliste immer schon feststehen? |
Re: Funktion oder Proz. übergeben
Schon mal überlegt, wozu es private usw. gibt ? Wozu soll der Prozedur-Parameter denn überhaupt gut sein ?
|
Re: Funktion oder Proz. übergeben
Nein, das geht nicht. Das ginge gegen die Delphi-Syntax ;)
|
Re: Funktion oder Proz. übergeben
Tut mir leid, aber ich verstehe deine Frage nicht so richtig.
Der Code ist doch nur ein Beispiel. Ich würde nur gern wissen, wie man z.B eine Funktion, deren Parameter unbekannt sind, an eine andere Funktion übergibt. oh, merke grad, dass ich mich verschrieben habe:
Delphi-Quellcode:
type
TFunc= function(Parameter: Char): Byte;
Delphi-Quellcode:
function X(Proc: TFunc): Real;
|
Re: Funktion oder Proz. übergeben
Gibt es da auch keinen Umweg?
Vielleicht mit Pointern, dass ich die Adresse der Funktion übergebe? Würde das gehen? |
Re: Funktion oder Proz. übergeben
Nur so: Wie willst du diese Funktion dann aufrufen, dass die Funktion auch alle Parameter übergeben bekommt, wenn du diese nicht weist ?
(Vielleicht ginge es mit ASM und einem CALL ...) |
Re: Funktion oder Proz. übergeben
du kannst ganz einfach die funktion selbst mit pointern bauen.
Delphi-Quellcode:
type
TFunc= function(Parameter: Pointer): Byte; |
Re: Funktion oder Proz. übergeben
Kurz? Nein.
Lang: Wenn du eine Funktion verwendest, musst du zur Kompilierzeit wissen, welche Parameter du wie übergeben musst. Das geht aber nur, wenn die Signatur der Funktion/Prozedur festgelegt ist. Es geht nicht anders ;) Mit .net ginge es eventuell, aber unter Win32 kommst du bei so einem Vorhaben um TypeInfo und selbstmodifizierenden Code nicht herum. |
Re: Funktion oder Proz. übergeben
Na gut :cry: ,
Aber Danke für die Antworten, man lernt doch jeden Tag was Neues :thumb: |
Re: Funktion oder Proz. übergeben
Delphi-Quellcode:
nur hast du dann die Schwierigkeit den Typ alle Parameter in der Funktion auszuwerten
type
TFunc= function (Params: array of const): Byte; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 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