Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mehrfacher Prozeduraufruf in for-Schleife (https://www.delphipraxis.net/55051-mehrfacher-prozeduraufruf-schleife.html)

bioser 15. Okt 2005 20:50


Mehrfacher Prozeduraufruf in for-Schleife
 
Hallo DELPHI-Progger, ich möchte in einer for-Schleife, von der ich erst zur Laufzeit den Endwert weiß, eine Prozedur eben genauso oft aufrufen. Die Prozedur sieht folgendermaßen aus:

Delphi-Quellcode:
procedure myproc(var a:integer; var b:string)

begin

//diese Anweisungen sollen nur einmal am Anfang ausgeführt werden

//diese Anweisungen sollen immer ausgeführt werden

//diese Anweisungen sollen nur am Ende ausgeführt werden

end;
Der Aufruf der Prozedur in der for-Schleife sieht dann so aus:

Delphi-Quellcode:
for i:=0 to anzahl-1 do
begin
 myproc(x,item[i]);
end;
Irgendwie habe ich meine Schwierigkeit damit.

Union 15. Okt 2005 20:58

Re: Mehrfacher Prozeduraufruf in for-Schleife
 
Delphi-Quellcode:
procedure myproc(var a:integer; var b:string; const Start, i, Ende : integer)

begin

if i = Start then
begin
   //diese Anweisungen sollen nur einmal am Anfang ausgeführt werden
end
else
if i = Ende then
begin
   //diese Anweisungen sollen nur am Ende ausgeführt werden
end
else
begin
   //diese Anweisungen sollen immer ausgeführt werden
end;


end;
Der Aufruf der Prozedur in der for-Schleife sieht dann so aus:

Delphi-Quellcode:
for i := 0 to anzahl-1 do
begin
 myproc(x,item[i],0,i,Anzahl-1);
end;

Nikolas 15. Okt 2005 21:03

Re: Mehrfacher Prozeduraufruf in for-Schleife
 
Mit etwas weniger Aufwand kannst du auch einfach einen Boolean übergeben:

Delphi-Quellcode:
var
last: boolean;

last := false;
for i := 0 to anzahl-1 do
begin
if i= anzahl-1 then last:= true;
myproc(x,item[i],Last);
end;
Delphi-Quellcode:
procedure myproc(var a:integer; var b:string)

begin

if a=0 then
//diese Anweisungen sollen nur einmal am Anfang ausgeführt werden

if a>0 and not last then
//diese Anweisungen sollen immer ausgeführt werden

if last then
//diese Anweisungen sollen nur am Ende ausgeführt werden

end;

Union 15. Okt 2005 21:05

Re: Mehrfacher Prozeduraufruf in for-Schleife
 
Du gehst dabei davon aus, dass die Schleife immer bei 0 beginnt.

Nikolas 15. Okt 2005 21:57

Re: Mehrfacher Prozeduraufruf in for-Schleife
 
Zitat:

Du gehst dabei davon aus, dass die Schleife immer bei 0 beginnt.
Stimmt. Aber da im Code von ihm nur die obere Grenze durch eine Variable bestimmt ist und die auch noch Anzahl heisst, bin ich davon ausgegangen, dass die SChleife immer von 0 beginnt.


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