Einzelnen Beitrag anzeigen

Landfloh

Registriert seit: 17. Feb 2008
75 Beiträge
 
Delphi 7 Personal
 
#1

Problem mit Fehlermeldung

  Alt 8. Mär 2008, 18:25
Hallo

Ich habe ein Problem.

Wenn ich mein Programm starte dann kommt diese Fehlermeldung:
Zugriffsverletzung bei Adresse 00403441 in Modul 'MATHE4.exe'. Lesen von Adresse 00000000.

Hier der komplette Quelltext:

Delphi-Quellcode:
unit ZINS1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TZins = class (TObject)
    Kapital,
    Prozent,
    Zinsen: Single;
    constructor Create;
    procedure SetKapital (Txt: String);
    procedure SetProzent (Txt: String);
    procedure SetZinsen (Txt: String);
    function GetKapital: String;
    function GetProzent: String;
    function GetZinsen:String;
  end;
  
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure SetZero;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Zins : TZins;
  Modus: Integer;
implementation

{$R *.dfm}

constructor TZins.Create;
begin
  inherited Create;
end;

procedure TZins.SetKapital(Txt: String);
begin
  Kapital := StrToFloat (Txt);
end;

procedure TZins.SetProzent(Txt: String);
begin
  Prozent := StrToFloat (Txt);
end;

procedure TZins.SetZinsen(Txt: String);
begin
  Zinsen := StrToFloat (Txt);
end;

function TZins.GetKapital: String;
begin
  Kapital := Zinsen * 100 / Prozent;
  GetKapital := FloatToStrF(Kapital,ffNumber,8,2);
end;

function TZins.GetProzent: String;
begin
  Prozent := Zinsen *100 / Kapital;
  GetProzent := FloatToStrF(Prozent,ffNumber,8,2);
end;

function TZins.GetZinsen: String;
begin
  Zinsen := Kapital * Prozent / 100;
  GetZinsen := FloatToStrF(Zinsen,ffNumber,8,2);
end;

procedure TForm1.SetZero;
begin
  Zins.Kapital := 0;
  Zins.Prozent := 0;
  Zins.Zinsen := 0;
  Edit1.Text := '0';
  Edit2.Text := '0';
  Edit3.Text := '0';
  Modus := 0;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Zins := Zins.Create;
  SetZero;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetZero;
  Label1.Caption :=
    'Setz nur die gesuchte Größe auf Null!';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Label1.Caption := 'Das ist das Ergebnis';
  Zins.SetKapital(Edit1.Text);
  if Edit1.Text = '0then inc (Modus);
  Zins.SetProzent(Edit2.Text);
  if Edit2.Text = '0then inc (Modus,10);
  Zins.SetZinsen(Edit3.Text);
  if Edit3.Text ='0then inc (Modus,100);
  case Modus of
    1 : Edit1.Text := Zins.GetKapital;
    10 : Edit2.Text := Zins.GetProzent;
    100: Edit3.Text := Zins.GetZinsen;
    else
      Label1.Caption := 'Keine oder zu viele Nullen!';
  end;
  Modus := 0;
end;

end.
Kann mir jemand helfen?

Hier auch nochmal die Dateien:
Angehängte Dateien
Dateityp: exe mathe4_145.exe (386,5 KB, 2x aufgerufen)
Dateityp: dpr mathe4_108.dpr (186 Bytes, 0x aufgerufen)
Dateityp: dfm zins1_113.dfm (2,8 KB, 0x aufgerufen)
  Mit Zitat antworten Zitat