![]() |
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:
Aber wie weise ich den einzelnen Algorithmen diese spezielle Parameterlist zu. Ich kann einfach die Parameterliste jedes Mal abschreiben:
type
TSortAlgorithm = procedure(ParameterlisteX);
Delphi-Quellcode:
Am liebsten wärs mir aber, wenn man das irgendwie zuweisen könnte. In etwa so:
procedure A(ParameterlisteX);
begin ... end; procedure B(ParameterlisteX); begin ... end; procedure C(ParameterlisteX); begin ... end;
Delphi-Quellcode:
Gibt es da eine Möglichkeit?
procedure A := TSortAlgorithm;
begin ... end; procedure B := TSortAlgorithm; begin ... end; procedure C := TSortAlgorithm; begin ... end; Grüße blablab |
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; |
AW: Parameterliste einer Funktion zuweisen
Oder anders:
Delphi-Quellcode:
Von TSortAlgorithm kannst du jetzt zB. TBubblesort ableiten und implementierst dafür die Sort-Prozedur.
type
TSortAlgorithm = class public property ParameterX: Integer; property ParameterY: String; property ParameterZ: Sonstwas; procedure sort; virtual abstract; end; |
AW: Parameterliste einer Funktion zuweisen
Vielen Dank!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:21 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