AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Funktion oder Proz. übergeben

Ein Thema von SebE · begonnen am 23. Jul 2005 · letzter Beitrag vom 24. Jul 2005
Antwort Antwort
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#1

Funktion oder Proz. übergeben

  Alt 23. Jul 2005, 20:35
Guten Abend.

Ich hab gesehen, dass man einer Prozedur/Funktion als Parameter eine Prozedur/Funktion übergeben kann:

Delphi-Quellcode:
type
  TFunc= procedure(Parameter: Char): Byte;

function X(Proc: TFunc): Real;
Aber man muss in der Deklaration von TFunc die Parameter angeben,
geht das auch irgendwie ohne,
so dass ich der Funktion X irgendeine Funtion als Parameter übergebe??
Oder muss die Parameterliste immer schon feststehen?
Sebastian
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Funktion oder Proz. übergeben

  Alt 23. Jul 2005, 20:45
Schon mal überlegt, wozu es private usw. gibt ? Wozu soll der Prozedur-Parameter denn überhaupt gut sein ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#3

Re: Funktion oder Proz. übergeben

  Alt 23. Jul 2005, 20:51
Nein, das geht nicht. Das ginge gegen die Delphi-Syntax
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#4

Re: Funktion oder Proz. übergeben

  Alt 23. Jul 2005, 20:52
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;
function X(Proc: TFunc): Real;
Sebastian
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#5

Re: Funktion oder Proz. übergeben

  Alt 23. Jul 2005, 20:52
Gibt es da auch keinen Umweg?

Vielleicht mit Pointern, dass ich die Adresse der Funktion übergebe?
Würde das gehen?
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: Funktion oder Proz. übergeben

  Alt 23. Jul 2005, 21:00
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 ...)
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Funktion oder Proz. übergeben

  Alt 23. Jul 2005, 21:01
du kannst ganz einfach die funktion selbst mit pointern bauen.

Delphi-Quellcode:
type
  TFunc= function(Parameter: Pointer): Byte;
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#8

Re: Funktion oder Proz. übergeben

  Alt 23. Jul 2005, 21:02
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.
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#9

Re: Funktion oder Proz. übergeben

  Alt 23. Jul 2005, 21:06
Na gut ,

Aber Danke für die Antworten, man lernt doch jeden Tag was Neues
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Funktion oder Proz. übergeben

  Alt 24. Jul 2005, 06:15
Delphi-Quellcode:
type
  TFunc= function (Params: array of const): Byte;
nur hast du dann die Schwierigkeit den Typ alle Parameter in der Funktion auszuwerten
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  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 17:49 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