Hiho,
ich hab noch nicht lange
OOP und ich brüte grade über einer Aufgabe und komme nicht weiter. Ich hab eine Radiogroup mit 4 EInträgen (wovon ich jewals immer den Titel wieder ausgeben will, z.B. Verbrennungsmotor)
Allerdings kommen (im Moment) 2 Fehlermeldungen: Nicht genügent wirkliche Parameter und Inkompatible Typen. Wie geb ich den Klassennahmn in der Memo aus? Und Hier muss auch noch eine
Unit dazu, wo Alternativfahrzeuge (Elektro, Wasserstoff) definiert werden (soweit bin ich aber noch nicht).
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, unit2, unit3;
type
TForm1 =
class(TForm)
RadioGroup1: TRadioGroup;
Memo1: TMemo;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
Auto: TFahrzeug;
M_Leistung:
string;
M_Bezeichnung: boolean;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if RadioGroup1.itemindex=0
then
Auto:= TFahrzeug.create(Edit1.text, Radiogroup1.itemindex=0);
{If RadioGroup1.itemindex=1 then
Auto := TAlternativfahrzeug.create(Edit1.text, Edit3.text);}
If Radiogroup1.itemindex=2
then
Auto:= THybridfahrzeug.create (Edit1.text, Edit2.text);
{If RadioGroup1.ItemIndex=3 then
Auto := TAlternativfahrzeug.create (Edit1.text, Edit3.text);}
//memo1.lines.add:=M_Leistung;
end;
end.
Delphi-Quellcode:
unit Unit2;
//Fahrzeug allgemein
interface
uses sysutils;
Type TFahrzeug =
class (TObject)
private
public
constructor create (M_Bezeichnung:
string; M_Leistung:
string);
function getleistung:
string;
//function getMotorBezeichnung: string;
//function getreichweite: integer; virtual; abstract;
end;
var Bezeichnung:
string;
Leistung:
string;
M_Leistung, M_Bezeichnung:
string;
implementation
constructor TFahrzeug.create (M_Bezeichnung:
string; M_Leistung:
string);
begin
M_Bezeichnung :=Bezeichnung ;
M_Leistung :=Leistung ;
end;
function TFahrzeug.getleistung:
string;
begin
result := M_Leistung ;
end;
end.
Delphi-Quellcode:
unit Unit3;
//Fahrzeug Hybrid
interface
uses sysutils, unit2;
Type THybridfahrzeug =
class (TFahrzeug)
private
public
constructor create (M_Bezeichnung:
string; M_Leistung, E_M_Leistung:
string);
//function getleistung: string; virtual;
//function getMotorBezeichnung: string;
//function getreichweite: string; virtual; abstract;
end;
var Bezeichnung:
string;
Leistung, Zusatzleistung:
string;
M_Leistung:
string;
implementation
constructor THybridfahrzeug.create (M_Bezeichnung:
string; M_Leistung,E_M_Leistung:
string);
begin
inherited create (Bezeichnung, Leistung);
E_M_Leistung := Zusatzleistung;
end;
end.
MfG & Danke schonmal im Vorraus
Liam