|
XardasLP
(Gast)
n/a Beiträge |
#26
![]() In diesem Thread geht es um das Memory Spiel und nicht um das Speichern von Benutzername und Passwort.
Das einzige was wir mal mit Klassen ("komplex") gemacht haben ist das hier: Unit1:
Delphi-Quellcode:
Unit2:
unit Umain;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; EditID: TEdit; ButtonND: TButton; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; RG: TRadioGroup; ButtonBA: TButton; ButtonSAVE: TButton; ButtonCLOSE: TButton; EditDS: TEdit; EditB: TEdit; EditLZ: TEdit; CB: TComboBox; EditmZ: TEdit; EditmR: TEdit; EditGz: TEdit; EditGza: TEdit; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; procedure ButtonBAClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ButtonNDClick(Sender: TObject); procedure RGClick(Sender: TObject); procedure ButtonSAVEClick(Sender: TObject); procedure ButtonCLOSEClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; liste: TStrings; anz: integer; implementation uses UDarlehen; {$R *.dfm} procedure TForm1.ButtonBAClick(Sender: TObject); begin EditDS.Enabled := False; EditB.Enabled := False; EditLZ.Enabled := False; CB.Enabled := False; Label3.Enabled := False; Label4.Enabled := False; Label5.Enabled := False; Label6.Enabled := False; Label7.Enabled := True; Label8.Enabled := True; Label9.Enabled := True; Label10.Enabled := True; EditGZ.Enabled := True; EditGza.Enabled := True; EditmR.Enabled := True; if (EditDS.Text = '') or (EditB.Text = '') or (EditLZ.Text = '') or (CB.Text = '') then begin EditDS.SetFocus; end else begin darlehen.set_DS(strtofloat(Editds.Text)); darlehen.set_BE(strtodate(EditB.Text)); darlehen.set_LZ(strtoint(EditLZ.Text)); darlehen.set_JZ(strtofloat(CB.Text)); case RG.ItemIndex of 0: begin EditMR.Text := formatfloat('0.00',darlehen.get_mon_Raten); EditMZ.Clear; EditGZ.Text := formatfloat('0.00',darlehen.get_ges_zinsen); EditGza.Text := formatfloat('0.00',darlehen.get_ges_zahlung); end; 1: begin EditMZ.Text := formatfloat('0.00',darlehen.get_mon_Zinsen); EditMR.Text := ''; end; end; EditGz.Text := formatfloat('0.00', darlehen.get_ges_zinsen); EditGza.Text := formatfloat('0.00', darlehen.get_ges_zahlung); end; ButtonSave.Enabled := True; ButtonClose.Enabled := True; end; procedure TForm1.FormCreate(Sender: TObject); begin liste := TStringList.Create; end; procedure TForm1.ButtonNDClick(Sender: TObject); begin ButtonND.Enabled := False; EditID.Enabled := False; Label2.Enabled := False; EditDS.Enabled := True; EditB.Enabled := True; EditLZ.Enabled := True; CB.Enabled := True; Label3.Enabled := True; Label4.Enabled := True; Label5.Enabled := True; Label6.Enabled := True; if RG.ItemIndex = -1 then begin showmessage('Bitte Darlehensart auswählen! '); end else begin liste.LoadFromFile('darlehen.txt'); anz := + liste.Count + 1000; //showmessage(inttostr(anz)); EditID.Text := upcase(RG.Items[RG.ItemIndex][1]) + inttostr(anz); case RG.ItemIndex of 0: darlehen := TAnnuitaetendarlehen.create(Editid.Text); 1: darlehen := TEndfaelliges_Darlehen.create(Editid.Text); end; ButtonBA.Enabled := True; end; end; procedure TForm1.RGClick(Sender: TObject); begin ButtonND.Enabled := True; Label2.Enabled := True; end; procedure TForm1.ButtonSAVEClick(Sender: TObject); begin liste.Add(darlehen.speichern); liste.SaveToFile('darlehen.txt'); showmessage('Daten erfolgreich gespeichert!'); liste.Free; darlehen.Free; end; procedure TForm1.ButtonCLOSEClick(Sender: TObject); begin close; end; end.
Delphi-Quellcode:
unit UDarlehen;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Math; type TDarlehen = class protected Ident: string; Darlehensschuld: real; Beginn: TDateTime; Laufzeit: integer; Jahreszins: real; A: real; public constructor create; procedure set_DS (Wert: real); procedure set_BE (Wert: TDateTime); procedure set_LZ (Wert: integer); procedure set_JZ (Wert: real); function get_mon_Zinsen(): real; virtual; function get_mon_Raten(): real; virtual; function get_ges_zinsen(): real; virtual; function get_ges_zahlung(): real; function speichern(): string; end; TAnnuitaetendarlehen = class(TDarlehen) private public constructor create(id: string); function get_mon_Raten(): real; override; function get_ges_Zinsen(): real; override; end; TEndfaelliges_Darlehen = class(TDarlehen) public constructor create(id: string); function get_mon_Zinsen(): real; override; function get_ges_Zinsen(): real; override; end; var darlehen: TDarlehen; implementation //*-----*//TDarlehen//*-----*// constructor TDarlehen.create; begin // end; procedure TDarlehen.set_DS (Wert: real); begin Darlehensschuld := wert; end; procedure TDarlehen.set_BE (Wert: TDateTime); begin Beginn := wert; end; procedure TDarlehen.set_LZ (Wert: integer); begin Laufzeit := wert; end; procedure TDarlehen.set_JZ (Wert: real); begin Jahreszins := wert; end; function TDarlehen.get_mon_Zinsen(): real; begin // end; function TDarlehen.get_mon_Raten(): real; begin // end; function TDarlehen.get_ges_zinsen(): real; begin // end; function TDarlehen.get_ges_zahlung(): real; begin result := Darlehensschuld + get_ges_zinsen; end; function TDarlehen.speichern(): string; begin result := Ident + '#' + formatfloat('0.00',darlehensschuld) + '#' + datetostr(Beginn) + '#' + inttostr(Laufzeit) + '#' + formatfloat('0.00',jahreszins) + '#' + formatfloat('0.00',get_mon_zinsen) + '#' + formatfloat('0.00',get_mon_raten) + '#' + formatfloat('0.00',get_ges_zinsen) + '#' + formatfloat('0.00',get_ges_zahlung); end; //*-----*//TAnnuitaetendarlehen//*-----*// constructor TAnnuitaetendarlehen.create(id: string); begin Ident := id; end; function TAnnuitaetendarlehen.get_mon_Raten(): real; begin result := Darlehensschuld * power(1 + Jahreszins/1200, Laufzeit) *(Jahreszins/1200) /(power(1 + Jahreszins/1200, Laufzeit) -1); //Power errechnet aus Base und einen beliebigen Wert die Potenz. Wird als //Exponent ein Bruchwert oder ein Wert größer MaxInt angegeben, //muss Base größer als 0 sein. end; function TAnnuitaetendarlehen.get_ges_Zinsen(): real; begin result := get_mon_Raten * laufzeit - Darlehensschuld; end; //*-----*//TEndfaelliges_Darlehen//*-----*// constructor TEndfaelliges_Darlehen.create(id: string); begin Ident := id; end; function TEndfaelliges_Darlehen.get_mon_Zinsen(): real; begin result := get_ges_Zinsen end; function TEndfaelliges_Darlehen.get_ges_Zinsen(): real; begin result := Darlehensschuld * power(1 + Jahreszins/100 {wegen Prozent}, Laufzeit/12) - Darlehensschuld end; end. |
![]() |
Ansicht |
![]() |
![]() |
![]() |
ForumregelnEs 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
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
![]() |
![]() |