AGB  ·  Datenschutz  ·  Impressum  







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

Funktionen hinterlegen (wie Events)

Ein Thema von glkgereon · begonnen am 2. Mär 2006 · letzter Beitrag vom 3. Mär 2006
Antwort Antwort
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

Funktionen hinterlegen (wie Events)

  Alt 2. Mär 2006, 19:32
Hi...

Ich habe einige Funktionen mit exakt gleichen Parameterlisten. (konkret geht es um einen Mathe-Parser^^)

zur einfacheren Überprüfung habe ich mir folgendes System überlegt:
Ich hinterlege zu jedem Operator die Funktion, tue das dann in einen Array und muss dann nur noch alles durchgehen, mir das richtige raussuchen und die funktion aufrufen.

konkret sähe das dann in etwa so aus:

Delphi-Quellcode:
type
  TProcTwoValOperation = function (Val1, Val2: Extended): Extended;

  TTwoValOp = record
    Proc: TProcTwoValOperation;
    Name: String;
  end;

function Plus: TProcTwoValOperation;

const
  cTwoValOperations: array [1..1] of TTwoValOp = (
    (Proc: Plus; Name: '+')
  );

implementation

function Plus(Val1, Val2: Extended): Extended;
begin
  Result:=Val1+Val2;
end;

function Rechne(Op: String; Params: array of Extended): Extended;
var i:Integer;
begin
  if Length(Params)=2 then
  for i:=Low(cTwoValOperations) to High(cTwoValOperations) do
    if cTwoValOperations[i].Name=Op then
      begin
      Result:=cTwoValOperations[i].Proc(Params[0],Params[1]);
      Break;
      end;
end;
nur leider motzt er dann bei der Deklaration der Konstanten, Plus wäre ein Extended und kein TProcTwoValOperation.

wie muss das richtig gehen?
geht es so überhaupt?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Funktionen hinterlegen (wie Events)

  Alt 2. Mär 2006, 19:46
Hi,

stattfunction Plus: TProcTwoValOperation; sollte es TProcTwoValOperation = function (Val1, Val2: Extended): Extended; heißen.
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: Funktionen hinterlegen (wie Events)

  Alt 2. Mär 2006, 19:47
Zitat von Niko:
Hi,

stattfunction Plus: TProcTwoValOperation; sollte es TProcTwoValOperation = function (Val1, Val2: Extended): Extended; heißen.
das steht ja oben...

aber ich muss dann ja Plus als so eine Funktion deklarieren....
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Funktionen hinterlegen (wie Events)

  Alt 3. Mär 2006, 10:45
Zitat von Gereon:
das steht ja oben...
Hoppla, hab versehentlich die falsche Zeile hingeschrieben. Es muss
function Plus(Val1, Val2: Extended): Extended; heißen, also genau so, wie deine Funktion auch im implementation Abschnitt definiert ist.
Was du deklariert hast ist eine Funktion, die keine Parameter hat und einen Rückgabewert vom Typ TProcTwoValOperation zurückliefert.
  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 12:37 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