Autor Beitrag
Hänsel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 144



BeitragVerfasst: So 10.09.17 10:37 
Hallo,
Ich habe folgendes Problem, wer kann mir da etwas weiter helfen.

Ich habe ein Vereinsprogramm und möchte an verschiedenen Stellen die gleiche Rechenoperation durchführen. Es wäre ja nicht sinnvoll an jeder dieser Stellen das gleiche noch einmal zu schreiben. Ich möchte dazu eine Prozedur hierfür anlegen. Wie sieht diese aus bzw. wo muss ich diese deklarieren und wie kann ich diese dann aus dem Programm heraus aufrufen. Die Prozedur sollte "Prozedure BeitragRechnung" heißen.

Im Voraus besten Dank
Hänsel
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: So 10.09.17 12:00 
user profile iconHänsel hat folgendes geschrieben Zum zitierten Posting springen:
Wie sieht diese aus bzw. wo muss ich diese deklarieren und wie kann ich diese dann aus dem Programm heraus aufrufen. Die Prozedur sollte "Prozedure BeitragRechnung" heißen.

Hallo!

Nun ja, du erstellst zunächst einmal die Prozedur und schreibst deine Berechnungen hinein, zB:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.BeitragRechnung({ggf. benötigte Parameter});
begin
  //die Berechnungen
end;


Wenn du aber ein Ergebnis benötist, musst du das Ganze als Funktion realisieren:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
function TForm1.BeitragRechnung({ggf. benötigte Parameter}): Integer;
begin
  //die Berechnungen
  Result := //das Ergebnis der Berechnungen
end;


Der Aufruf erfolgt dann überall dort, wo die Berechnungen benötigt werden!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Hänsel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 144



BeitragVerfasst: So 10.09.17 14:56 
Ich habe eine Programmschleife, wo während des Durchlaufes entschieden wird (abhängig von den Einstellungen im Programm) ob die Procedure BeitragRechnung1 oder Procedure BeitragRechnung2 zur Anwendung kommt. Wie rufe ich die entsprechende Procedure auf?
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: So 10.09.17 15:19 
user profile iconHänsel hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe eine Programmschleife, wo während des Durchlaufes entschieden wird (abhängig von den Einstellungen im Programm) ob die Procedure BeitragRechnung1 oder Procedure BeitragRechnung2 zur Anwendung kommt. Wie rufe ich die entsprechende Procedure auf?
Wenn das während des Durchlaufes entschieden wird, dann rufe die entsprechende Prozedur eben je nach Entscheidung auf (= es steht also fest, welche Prozedur aufgerufen werden soll). Irgendein Kriterium, welche Prozedur nun drankommt, muss es ja geben.

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Hänsel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 144



BeitragVerfasst: So 10.09.17 15:36 
Die Entscheidung erfolgt :

IF Person > 10 then
Begin
wie rufe ich jetzt die Berechnung1 auf?
End
else
Begin
wie rufe ich jetzt die Berechnung2 auf?
End
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: So 10.09.17 16:47 
user profile iconHänsel hat folgendes geschrieben Zum zitierten Posting springen:
Die Entscheidung erfolgt :

IF Person > 10 then
Begin
wie rufe ich jetzt die Berechnung1 auf?
End
else
Begin
wie rufe ich jetzt die Berechnung2 auf?
End


So:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
IF Person > 10 then
Begin
  Berechnung1;
End
else
Begin
  Berechnung2;
End;

Wenn deine Prozeduren Berechnung1 und Berechnung2 Parameter erfordern, musst du diese natürlich mit angeben!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Hänsel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 144



BeitragVerfasst: So 10.09.17 17:14 
Ich benötige dazu keine Parameter. Ich möchte nur über IF-Anwendung eines dieser Prozeduren starten .Da hätte ich gern die Befehlszeile hierzu. Sorry, da habe ich mich sicher schlecht ausgedrückt.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 10.09.17 17:16 
Genau das hat dir user profile icongalagher doch geschrieben als Quelltext.
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: So 10.09.17 17:17 
user profile iconHänsel hat folgendes geschrieben Zum zitierten Posting springen:
Ich möchte nur über IF-Anwendung eines dieser Prozeduren starten .Da hätte ich gern die Befehlszeile hierzu.
Die Befehlszeile ist der Name der Prozedur! Schreib ihn hin und das ist es auch schon.

//Edit:
@user profile iconjaenicke: Unsere Beiträge haben sich "überschnitten"!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Hänsel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 144



BeitragVerfasst: So 10.09.17 17:49 
Danke für Eure Hinweise!

Hänsel