Einzelnen Beitrag anzeigen

Dennis S.

Registriert seit: 16. Feb 2010
Ort: Kreiensen
11 Beiträge
 
Delphi 7 Personal
 
#1

Schulprojekt: Thema: Berechnungen am Rechteck

  Alt 16. Feb 2010, 15:15
Hallo Leute,
ich habe das Programieren ganz neu in der Schule gelernt.
Wir sollen nun ein Programm schreiben, mit dem man die Fläche, den Umfang und die Diagonale eines Rechtecks berechnen kann, wenn man die Seiten a und b hat. Aufgabe 2 war, das Programm so zuerweitern, das wenn man Seite a oder b + die Fläche eingibt, dass das Programm dann die fehlende Seite ausspuckt.
Hier mein Quelltext:
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    LaengeEdit: TEdit;
    BreiteEdit: TEdit;
    FlaecheEdit: TEdit;
    DiagonaleEdit: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    UmfangEdit: TEdit;
    RechnenButton: TButton;
    AbbruchButton: TButton;
    Label11: TLabel;
    procedure AbbruchButtonClick(Sender: TObject);
    procedure RechnenButtonClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.AbbruchButtonClick(Sender: TObject);
begin
 Close;
end;

procedure TForm1.RechnenButtonClick(Sender: TObject);
begin
 IF (LaengeEdit.Text <> '') and (BreiteEdit.Text <> '')
 THEN
  begin
   FlaecheEdit.Text := IntToStr(StrToInt(LaengeEdit.Text)*StrToInt(BreiteEdit.Text));
   UmfangEdit.Text := IntToStr(StrToInt(LaengeEdit.Text)*2+StrToInt(BreiteEdit.Text)*2);
   DiagonaleEdit.Text := FloatToStr(sqrt(StrToInt(LaengeEdit.Text)*StrToInt(LaengeEdit.Text)+StrToInt(BreiteEdit.Text)*StrToInt(BreiteEdit.Text)));
   Label11.Caption := '';
  end
 ELSE
  begin
   IF (LaengeEdit.Text <> '') or ((BreiteEdit.Text<> '') and (FlaecheEdit.Text <> ''))
   THEN
    begin
     LaengeEdit.Text := IntToStr(StrToInt(FlaecheEdit.Text)/StrToInt(BreiteEdit.Text));
     BreiteEdit.Text := IntToStr(StrToInt(FlaecheEdit.Text)/StrToInt(LaengeEdit.Text));
    end
    ELSE Label11.Caption := 'Fehlende Eingabe'
  end
end;

end.
So. Folgendes Problem hat sich nun ergeben: Delphi gibt mir an den letzten 2 Befehlen
Delphi-Quellcode:
    begin
     LaengeEdit.Text := IntToStr(StrToInt(FlaecheEdit.Text)/StrToInt(BreiteEdit.Text));
     BreiteEdit.Text := IntToStr(StrToInt(FlaecheEdit.Text)/StrToInt(LaengeEdit.Text));
    end
die Meldung:
'[Fehler] Unit1.pas(65): Es gibt keine überladene Version von 'IntToStr', die man mit diesen Argumenten aufrufen kann'
Mein Informatiklehrer hat auch keinen Plan wie das funktionieren könnte. Wäre echt cool wenn mir jemand sagen könnte was ich da falsch mache.
Danke im Vorraus.
MfG Dennis
  Mit Zitat antworten Zitat