unit uAuto;
interface
uses Dialogs;
type
TAuto = class(TObject)
private
Geschwindigkeit: real;
MaxLeistung: integer;
MaxGeschw: integer;
MotorBetrieb: boolean;
public
function getGeschwindigkeit(): real;
procedure setMaxLeistung(Wert: integer);
function getMaxLeistung(): integer;
procedure setMaxGeschw(Wert: integer);
function getMaxGeschw(): integer;
function getMotorStatus(): boolean;
procedure starteMotor();
procedure stoppeMotor();
procedure beschleunige();
procedure bremse();
constructor Create(iMaxLeistung,iMaxGeschw: integer);
{destructor destroy();}
end;
implementation
constructor TAuto.Create(iMaxLeistung,iMaxGeschw: integer);
begin
inherited Create; // Geerbten Konstruktor aufrufen
Geschwindigkeit := 0; // Neue Felder initialisieren.
MotorBetrieb := false;
MaxLeistung := iMaxLeistung;
MaxGeschw := iMaxGeschw;
end;
{
destructor TAuto.destroy();
begin
end;
}
function TAuto.getGeschwindigkeit(): real;
begin
result := Geschwindigkeit;
end;
procedure TAuto.setMaxLeistung(Wert: integer);
begin
MaxLeistung := Wert;
end;
function TAuto.getMaxLeistung(): integer;
begin
result := MaxLeistung;
end;
procedure TAuto.setMaxGeschw(Wert: integer);
begin
MaxGeschw := Wert;
end;
function TAuto.getMaxGeschw(): integer;
begin
result := MaxGeschw;
end;
function TAuto.getMotorStatus(): boolean;
begin
result := MotorBetrieb;
end;
procedure TAuto.starteMotor();
begin
if not MotorBetrieb
then MotorBetrieb := true
else ShowMessage('Sie können den Motor nicht starten,'+chr(13)+
'da er schon läuft!');
end;
procedure TAuto.stoppeMotor();
begin
if Geschwindigkeit > 0
then ShowMessage('Bremsen Sie lieber zuerst!')
else
if MotorBetrieb
then MotorBetrieb := false
else ShowMessage('Sie können den Motor nicht stoppen,'+chr(13)+
'da er schon steht!');
end;
procedure TAuto.beschleunige();
begin
if not MotorBetrieb
then ShowMessage('Sie müssen zuerst den Motor starten!')
else begin
Geschwindigkeit := Geschwindigkeit + MaxLeistung*(MaxGeschw-Geschwindigkeit)/MaxGeschw/5;
if Geschwindigkeit > MaxGeschw then Geschwindigkeit := MaxGeschw;
end;
end;
procedure TAuto.bremse();
begin
Geschwindigkeit := Geschwindigkeit - 18;
if Geschwindigkeit < 0 then Geschwindigkeit := 0;
end;
end.
Die Unit uAuto muss in der Hauptunit angegeben werden:
implementation
uses uAuto;
{$R *.DFM}
var MeinAuto: TAuto;
Bei Create des Formulars erzeugen wir das Auto:
procedure TAutoGUI.FormCreate(Sender: TObject);
begin
{Aufruf des Konstruktors}
MeinAuto := TAuto.Create(72,178);
ZeigeStatus();
end;
Beispielprozedur:
procedure TAutoGUI.buMotoranClick(Sender: TObject);
begin
MeinAuto.starteMotor();
ZeigeStatus();
end;
Die Prozedur ZeigeStatus:
procedure TAutoGUI.ZeigeStatus();
{Zeigt Geschwindigkeit und Motorstatus an}
var Stat : string;
begin
edGeschw.Text := IntToStr(Round(MeinAuto.getGeschwindigkeit()));
if MeinAuto.getMotorStatus() then Stat := 'an' else Stat:= 'aus';
edMotorStatus.Text := 'Motor ist ' + Stat;
end;
[Index] [Zurück/Objekttyp-UML]
Autor: Jürgen Dehmer
Letzte Änderung: 27. April 2003