Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

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

Funktionen hinterlegen (wie Events)

  Alt 2. Mär 2006, 20: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