Inkompatible Typen:'Integer' und 'Extended'

LilPhil94

Newbie
Registriert
Dez. 2010
Beiträge
6
Hallo
ich habe ein Problem mit dem Wurzelziehen. Dies brauch ich um in einem Rechteck die Diagonale auszurechnen, jedoch kommt dann immer diese Fehlermeldung: Inkompatible Typen:'Interger' und 'Extended' (dort wo der Fehler ist habe ich ebenfalls rot markiert)

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;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
LaengeEdit: TEdit;
BreiteEdit: TEdit;
FlaecheEdit: TEdit;
UmfangEdit: TEdit;
DiagonaleEdit: TEdit;
RechnenButton: TButton;
AbbruchButton: TButton;
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);
var a,b,Laenge,Breite,Flaeche,Umfang,Diagonale:Integer;
begin
//Eingabe
a:=StrToInt(LaengeEdit.text);
b:=StrToInt(BreiteEdit.text);

//Verarbeitung
Umfang:=2*a+2*b;
Flaeche:=a*b;
Diagonale:=sqrt((a*a)+(b*b));

//Ausgabe der berechneten Daten
UmfangEdit.text:=IntToStr(Umfang);
FlaecheEdit.text:=IntToStr(Flaeche);
DiagonaleEdit.Text:=IntToStr(Diagonale);

end;

end.
 
Was für eine Sprache ist das? Pascal?

Gibt SQRT() überhaupt eine Integervariable zurück? Du solltest das überprüfen.
 
dein fehler liegt hier:
var a,b,Laenge,Breite,Flaeche,Umfang,Diagonale:Integer;
die diagonale muss extended sein, da bei wurzeln nicht immer integer werte herauskommen
 
Oh man wenn ich des jetzt so geändert habe dann kommt unten die Fehlermeldung Es gibt keine überladende Version von 'IntToStr', die man mit diesen Argumenten abrufen kann
bei :

//Ausgabe der berechneten Daten
UmfangEdit.text:=IntToStr(Umfang);
FlaecheEdit.text:=IntToStr(Flaeche);
DiagonaleEdit.text:=IntToStr(Diagonale);
 
kannst du die nicht einfach ausgeben ich weis zwar nicht was für eine sprache das ist aber es klingt stark nach pascal oder ähnlichem hasst du mal mit dem schreibbefehl hantiert?
 
Du hast den Variablentyp geändert. Logischerweise kann die IntToStr() keine Extended-Variablen verarbeiten. Sie erwartet Integervariablen.
 

Ähnliche Themen

Zurück
Oben