AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign For-Schleife als Template mit Prozedur als Parameter?

For-Schleife als Template mit Prozedur als Parameter?

Ein Thema von LTE5 · begonnen am 2. Jan 2018 · letzter Beitrag vom 4. Jan 2018
Antwort Antwort
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

AW: For-Schleife als Template mit Prozedur als Parameter?

  Alt 2. Jan 2018, 14:04
Für Tokyo habe ich das jetzt so gemacht

Delphi-Quellcode:
type
 TProcedureParameter = reference to procedure(i: Integer);

implementation

procedure ForLoop(Proc: TProcedureParameter);
var
 i: Integer;
begin
 for i := 0 to 3 do
  Proc(i);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
 ForLoop(
   procedure(i: Integer)
  begin
   ShowMessage(i.ToString);
  end);
end;
X wird 3x aufgerufen.
Wenn ich jetzt etwas am Schleifenkopf ändere, muss ich es nur noch an einer Stelle tun und nicht mehr an 100.

=> Habe erfolgreich resigniert
klappt nicht so wie ich will. Denn abbrechen kann man die Schleife dann scheinbar nicht mehr.

Geändert von LTE5 ( 2. Jan 2018 um 14:36 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: For-Schleife als Template mit Prozedur als Parameter?

  Alt 2. Jan 2018, 15:06
Kann man das nicht als Funktion schreiben, die False zurück gibt, wenn abgebrochen werden soll?

for i := 0 to 3 do
if not Proc(i) then break;
Ralph
  Mit Zitat antworten Zitat
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: For-Schleife als Template mit Prozedur als Parameter?

  Alt 2. Jan 2018, 15:08
Das ist die Frage. Das übersteigt aber meine Fähigkeiten
  Mit Zitat antworten Zitat
SProske

Registriert seit: 16. Feb 2015
Ort: Halle/S.
116 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: For-Schleife als Template mit Prozedur als Parameter?

  Alt 2. Jan 2018, 15:16
Delphi-Quellcode:
implementation

procedure ForLoop(Func: TFunc<Integer, Boolean>);
var
  i: Integer;
begin
  for i := 0 to 3 do
    if not Func(i) then
      Break;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  ForLoop(
    function(i: Integer): Boolean
    begin
      ShowMessage(i.ToString);
      Result := I <= 1;
      //oder vllt eher
      Result := I <= 2;
      if Result then
        ShowMessage(i.ToString);
    end);
end;
Sebastian

Geändert von SProske ( 2. Jan 2018 um 15:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#5

AW: For-Schleife als Template mit Prozedur als Parameter?

  Alt 2. Jan 2018, 16:23
X wird 3x aufgerufen.
Wenn ich jetzt etwas am Schleifenkopf ändere, muss ich es nur noch an einer Stelle tun und nicht mehr an 100.

=> Habe erfolgreich resigniert
klappt nicht so wie ich will. Denn abbrechen kann man die Schleife dann scheinbar nicht mehr.
Geht's dir wirklich nur um die Anzahl??? Dann nimm bittebittebitte eine Konstante!

Delphi-Quellcode:
const
  cLoopCount = 4;

for i := 0 to cLoopCount - 1 do // oder for i := 1 to cLoopCount do
  ...
Uli Gerhardt
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:22 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