AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Aufrechnen von Integer-Werten in ein neues Ergebnis
Thema durchsuchen
Ansicht
Themen-Optionen

Aufrechnen von Integer-Werten in ein neues Ergebnis

Ein Thema von EdAdvokat · begonnen am 1. Feb 2018 · letzter Beitrag vom 2. Feb 2018
 
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#16

AW: Aufrechnen von Integer-Werten in ein neues Ergebnis

  Alt 2. Feb 2018, 10:57
eine kleine Änderung und schon geht's. Habe Formcreate für die Instanzierung der class genutzt wie von Delphi.Narium angeregt und leise von mir vermutet wurde.
Warum kam ich nicht gleich darauf?
anbei das Ergebnis:
Die Form:
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var ergSummierung: int32;
begin
    Add.Zahl1 := StrToIntDef(edtZahl1.text,0);
    Add.Zahl2 := StrToIntDef(EdtZahl2.Text, 0);
    Add.Addition;
    LblErgebnis.Caption := IntToStr(Add.Ergebnis);
    ergSummierung:=add.Ergebnis;
    Add.aufrechnen(ergSummierung);
    lblAufrechnung.caption:=inttostr(add.Ergebnisaufrechnen);

  end;

procedure TForm1.btn2Click(Sender: TObject);
begin
  close;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  add:= TAddition.create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  add.Free;
end;
hier die logic:
Delphi-Quellcode:
type
  TAddition = class
  private
    FZahl1 : int32;
    FZahl2 : int32;
    FErgebnis: Int32;
    FAufrechnung: int32;
  public
    constructor create;
    destructor override;
    procedure Addition;
    procedure aufrechnen(value:int32);
    property Zahl1: Integer read FZahl1 write FZahl1;
    property Zahl2: Integer read FZahl2 write FZahl2;
    property Ergebnis: Integer read FErgebnis;
    property Ergebnisaufrechnen : int32 read FAufrechnung ;
  end;

implementation

{ TAddition }

procedure TAddition.Addition;
begin
  FErgebnis:=FZahl1+FZahl2;
end;

procedure TAddition.aufrechnen(Value:int32);
begin
  FAufrechnung:= Faufrechnung + Value ;
end;

constructor TAddition.create;
begin
  inherited create;
end;

destructor TAddition.override;
begin
  inherited Destroy;
end;
So ist sicher auch eine Rückrechnung von einer bestimmten Anzahl von Stücken bis auf 0 möglich. Diese Musterlösung hilft mir nun bescheiden weiter in meinen Übungen.
Doch ich bin auch neugierig geworden auf den Hinweis von Zacherl zur Nutzung von class function.
Zitat:
Gleiches gillt auch für das Vorherige Ablegen von Zahl1/2 in einem Feld der Klasse. Selbst wenn du Addition wirklich als extra Funktion modellieren willst, solltest du dafür den Prototyp (class) function Add(Value1, Value2: Integer): Integer; (static verwenden. Hier benötigst du weder Felder für die Parameter, noch für das Ergebnis (die Teile in Klammern sind Optimierungen; falls du damit nichts anfangen kannst, der Einfachheit halber erstmal ignorieren).
Wäre dies im konkreten Fall eine Möglichkeit? Wofür benutzt man diese grundsätzlich überhaupt? Ich habe bislang relativ wenig darüber gelesen und mir fehlt noch eine
konkrete Vorstellung zum möglichen Einsatz.
Man könne eine class procedure auch dann ausführen, wenn die Klasse noch garnicht instanziert wurde habe ich gelesen. Heißt das beispielsweise, ich könnte
mit dieser Möglichkeit die "Aufaddierung" mittels class function realisieren und dann nach Instanzierung der class ausführen? Wie geht das? Oder habe ich das
völlig falsch verstanden?
Wäre das Additionsbeispiel mit der von mir gewollten "Aufaddition" für ein Beispiel mit class function geeignet und könntest Du mir da etwas aufzeigen?
Es dient lediglich meiner Fortbildung auch in den "höheren Bereich" der OOP, in den ich mich mühseelig mit der Übersetzung von Marco Cantù's Object Pascal Handbook vorwage.
Noch eine Verfahrensfrage: Wie füge ich ein Zitat mit dem Hinweis von wem es kommt hier ein. Bislang schreibe ich nur Zitat und wollte jedoch kennzeichnen, dass das Zitat von Zacherl stammt.
Vielen Dank
Norbert
  Mit Zitat antworten Zitat
 


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 15:11 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