bin neu hier im Forum und möchte gleich ein Problem loswerden. (Konnte leider nirgendwo was darüber finden ...) Habe eigentlich ein GUI-Programm geschrieben, das nicht richtig läuft. Um dem Fehler auf die Spur zu kommen, habe ich das Progrämmchen etwas umgewandelt, um es auf der Konsole zu testen. Und siehe da, der Fehler ist reproduzierbar. (Lautet zwar anders, dürfte aber derselbe sein). Zum Besseren Verständnis hier das Originalprogramm, das NICHT läuft:
Code: Alles auswählen
program TestObject;
uses crt,sysutils;
type TRechteck = CLASS
//Eigenschaften
Breite: Single;
Hoehe: Single;
//Methoden
function Flaeche: Single;
function Umfang: Single;
procedure Ausgabe;
end;
function TRechteck.Flaeche: Single;
begin
Result := Breite * Hoehe;
end;
function TRechteck.Umfang: Single;
begin
Result := 2* (Breite + Hoehe);
end;
procedure TRechteck.Ausgabe;
begin
writeln ('Breite; ',round(Breite), 'Hoehe: ',round(Hoehe));
end;
var Rechteck: TRechteck;
BEGIN
clrscr;
writeln ('Bitte Breite eingeben : ');
readln (Rechteck.Breite);
writeln ('Bitte Hoehe eingeben : ');
readln (Rechteck.Hoehe);
writeln (Rechteck.Flaeche);
writeln (Rechteck.Umfang);
Rechteck.Ausgabe;
END.
Direkt nach Eingabe (oder auch Zuweisung ohne Readln) von Rechteck.Breite.
So weit so schlecht. Wenn ich aber bei der Typendeklaration folgendes schreibe:
Code: Alles auswählen
type TRechteck = OBJECT
//Eigenschaften
Breite: Single;
Hoehe: Single;
//Methoden
function Flaeche: Single;
function Umfang: Single;
procedure Ausgabe;
end;