Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#1

kann man einer Procedure als Parameter eine andere Procedure übergeben, o.ä.?

  Alt 31. Mär 2018, 15:23
Hallo zusammen,

in meinem Code muss ich in den verschiedensten Proceduren immer wieder dieselben Bedingungen abfragen. In den Bedingungen werden verschiedenste Stati geprüft.
Das produziert Unmengen an gleichen Code und ist somit schwer wartbar/erweiterbar/ anpassbar.
Wenn es geht, würde ich das gerne ändern und suche daher nun ein Konzept.

Beispiel:
Delphi-Quellcode:
procedure Tfrm_Main.machwas;
var
  ls_FileName : string;
  RecIdx, RowIdx : Integer;
begin
  ls_FileName := ....;
  RecIdx := ....;
  RowIdx := ....;

  if gb_Stati_1 then
  begin
    procedur 1(ls_FilenName, RecIdx, RowIdx);

  end else if gb_Stati_4 then
  begin
    procedur 2(ls_FilenName, RecIdx, RowIdx);
  end;
....
end;
Im Prinzip soll in der Procedure "machwas" die ganzen Abfragen wegfallen die dann in einer globalen Procedure(?) stehen und der man als Parameter für die einzelnen Bedingungen eine andere Proceduren übergeben kann.

Beispiel:
Delphi-Quellcode:
procedure Tfrm_Main.Check_Statis(const procedure x, const procedure y);
begin
  if gb_Stati_1 then
  begin
    x; //<== meine 1. "variable" Procedure
  end else if gb_Stati_4 then
  begin
    y; //<== meine 2. "variable" Procedure
  end;
....
end;

procedure Tfrm_Main.machwas;
var
  ls_FileName : string;
  RecIdx, RowIdx : Integer;
begin
  ls_FileName := ....;
  RecIdx := ....;
  RowIdx := ....;

  Check_Statis(x, y);
So meine Vorstellungen.
Die Bedingungen sind einiges komplexer wie hier dargestellt und die Anzahl der Proceduren (also die Anzahl der Bedingungen) sind momentan 8 Stk.
Ich denke das es für die Profiprogrammierer dafür eine Lösung geben müsste.
Gibt es die Möglichkeiten einer Procedure als Parameter eine andere Procedure zu übergeben? Oder wie löst man diese Anfortderung?
Leider bin ich (noch) sehr procedure-lastig beim Hobby-programmieren.

Ich hoffe ich konnte mein Problem überhaupt verständlich darstellen und bedanke mich schon mal vorab für Ideen und Konzeptvorschläge.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat