Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Parameterliste einer Funktion zuweisen (https://www.delphipraxis.net/159419-parameterliste-einer-funktion-zuweisen.html)

blablab 27. Mär 2011 12:01

Parameterliste einer Funktion zuweisen
 
Hallo!

Ich habe mehrere Sortier-Algorithmen und möchte diese gerne in einer Funktion kapseln. Deshalb möchte ich, dass alle Sortier-Algorithmen vom Typ TSortierAlgorithm sind:
Delphi-Quellcode:
type
   TSortAlgorithm = procedure(ParameterlisteX);
Aber wie weise ich den einzelnen Algorithmen diese spezielle Parameterlist zu. Ich kann einfach die Parameterliste jedes Mal abschreiben:
Delphi-Quellcode:
procedure A(ParameterlisteX);
begin
   ...
end;

procedure B(ParameterlisteX);
begin
   ...
end;

procedure C(ParameterlisteX);
begin
   ...
end;
Am liebsten wärs mir aber, wenn man das irgendwie zuweisen könnte. In etwa so:
Delphi-Quellcode:
procedure A := TSortAlgorithm;
begin
   ...
end;

procedure B := TSortAlgorithm;
begin
   ...
end;

procedure C := TSortAlgorithm;
begin
   ...
end;
Gibt es da eine Möglichkeit?

Grüße
blablab

himitsu 27. Mär 2011 12:04

AW: Parameterliste einer Funktion zuweisen
 
Delphi-Quellcode:
procedure A(Proc: TSortAlgorithm);
:?:

Ansonsten Nein, sowas geht leider nicht. (hab ich mir auch schon gewünscht)

Du kannst aber deine Parameter in ein Parameter-Objekt legen oder notfalls auch in einen Record.

Delphi-Quellcode:
type
  TSortParam = class {oder =record}
    ParameterX: Integer;
    ParameterY: String;
    ParameterZ: Sonstwas;
  end;

procedure A(Param: TSortParam); // beim Record das CONST nicht vergessen
begin
   ...
end;

procedure B(Param: TSortParam);
begin
   ...
end;

BUG 27. Mär 2011 12:38

AW: Parameterliste einer Funktion zuweisen
 
Oder anders:
Delphi-Quellcode:
type
  TSortAlgorithm = class
  public
    property ParameterX: Integer;
    property ParameterY: String;
    property ParameterZ: Sonstwas;
    procedure sort; virtual abstract;
  end;
Von TSortAlgorithm kannst du jetzt zB. TBubblesort ableiten und implementierst dafür die Sort-Prozedur.

blablab 27. Mär 2011 13:47

AW: Parameterliste einer Funktion zuweisen
 
Vielen Dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 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