Borderland Delphi for Schleife?

2 Antworten

Schonmal überlegt ein Liste zu machen. Du lässt die Zahlen in einer Liste speichern und kannst die dann auch addieren lassen. Wenn nicht dann schreib mir nochmal.

Woher ich das weiß:eigene Erfahrung

lambodaniel24 
Fragesteller
 25.09.2021, 00:47

Ne da habe ich tatsächlich noch nicht dran gedacht, un weiß umsuch nihmcht ganz wie das umgesetzt wird, daher schreib ich dir hiermit. :) allerdings schlafe ich jetzt erstmal, es tut mir daher leid wenn ich nicht zeitnahe antworte, sondern erst in ein paar Stunden

0

Die grafische Oberfläche kannst du dir zusammenklicken und über den Objekt Inspektor dem Button ebenfalls einen Event Handler (Prozedur) verpassen, der auf Klickereignisse reagiert. Ich denke, mit diesem Teil solltest du keine Probleme haben.

Im Folgenden sollte klar gestellt werden, welche Daten tatsächlich gespeichert werden sollen. Wenn nur die Summe von Interesse ist, reicht es aus, sich ein einfaches numerisches Feld anzulegen und bei jedem Klick einfach nur den Wert des Textfeldes aufzurechnen. Sollten allerdings alle Eingaben nachverfolgbar sein, wäre ein Array oder eine Liste zu empfehlen.

Ich zeige im folgenden den letztgenannten, längeren Weg. Das folgende Snippet zeigt zunächst das Anlegen einer Liste und eines Arrays.

type
  { ... }

var
  Numbers: TList<Integer>; // a list of integers
  Numbers2: array of Integer; // an array of integers

begin
  Self.Numbers := TList<Integer>.Create; // define
end.

Innerhalb der Prozedur holst du dir den Wert des Eingabefeldes und konvertierst ihn in einen numerischen Typ.

procedure YourForm.YourButtonClickHandler(Sender: TObject);
var
  number: Integer;
  index: Integer;
begin
  number := StrToInt(yourEditField.Text);

  // with list
  Self.Numbers.Add(number);

  // with array
  index := Length(Self.Numbers2)
  SetLength(Self.Numbers2, index + 1);
  Self.Numbers2[index] := number;
end;

Um die Summe aller Elemente zu berechnen, wäre dann tatsächlich auch eine Schleife von Bedeutung.

Mein Snippet zeigt nur, wie man über ein Array / eine Liste iteriert (in beiden Fällen ist das Vorgehen gleich). Dies für eine Summenberechnung auszubauen, überlasse ich dir.

var
  item: Integer;
begin
  for item in Self.Numbers do
    // do something ...
end.

lambodaniel24 
Fragesteller
 25.09.2021, 09:43

Ich möchte dir erstmal sehr sehr dolle danken, für deine lange und bemuhende Antwort. Aber tatsächlich muss ist nur die Summe von Interesse, aber ich weiß eben nicht mehr wie man das gemacht hat, diese immer weiter aufzubrechen, so einfach es auch sein mag 😅

0
regex9  25.09.2021, 15:20
@lambodaniel24

Die Summe kann mit den Plusoperator berechnet werden.

sum := numberOne + numberTwo;
1