![]() |
Re: OOP - Neuling braucht ein bisschen Hilfe
Mit OOP hat das glaub ich nicht wirklich was zu tun. Aber das Programm läuft schonmal, was positiv ist. Nun muss ich die anderen Units so basteln, dass das eingegebene auch angezeigt wird. Hierbei nochmal eine Frage: Wie zeig ich die Klassenbezeichnung im Memo an?
|
Re: OOP - Neuling braucht ein bisschen Hilfe
|
Re: OOP - Neuling braucht ein bisschen Hilfe
Ich hab wieder ein Problemchen, diesmal bei der Datenausgabe.
Ich hab in der Case-Anweisung die Motorbezeichnung gesetzt, jetzt will ich die auch ausgeben. Allerdings geht es nicht. Ich steh grad irgentwie voll aufm Schlauch :wall:
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; Ed_L_H: TEdit; Ed_Rw: TEdit; Ed_L_E: TEdit; Anlegen: TButton; procedure AnlegenClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Auto: TFahrzeug; M_Leistung: string; M_Bezeichnung: string; implementation {$R *.dfm} procedure TForm1.AnlegenClick(Sender: TObject); begin case Radiogroup1.itemindex of 0: begin Bezeichnung := 'Verbrennungsmotor'; Memo1.lines.Add(M_Bezeichnung); end; 1 : begin M_Bezeichnung:= 'Elektromotor'; end; 2 : begin M_Bezeichnung:= 'Hybridantrieb'; end; 3 : begin M_Bezeichnung:= 'Wasserstoffantrieb'; end; end; 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; virtual; //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 Bezeichnung := M_Bezeichnung ; M_Leistung :=Leistung ; end; function TFahrzeug.getleistung: string; begin result := Leistung ; end; function TFahrzeug.getMotorBezeichnung: string; begin result:= Bezeichnung; end; end. |
Re: OOP - Neuling braucht ein bisschen Hilfe
Delphi-Quellcode:
case Radiogroup1.itemindex of
0: begin Bezeichnung := 'Verbrennungsmotor'; end; 1 : begin M_Bezeichnung:= 'Elektromotor'; end; 2 : begin M_Bezeichnung:= 'Hybridantrieb'; end; 3 : begin M_Bezeichnung:= 'Wasserstoffantrieb'; end; else begin M_Bezeichnung:= '; end; if M_Bezeichnung <> '' then Memo1.lines.Add(M_Bezeichnung); end; |
Re: OOP - Neuling braucht ein bisschen Hilfe
Ich habs jetzt mal mit dieser Variante versucht:
Delphi-Quellcode:
procedure TForm1.AnlegenClick(Sender: TObject);
begin case Radiogroup1.itemindex of 0: begin Bezeichnung := 'Verbrennungsmotor'; Auto:=TFahrzeug.create(Radiogroup1.Items.GetText, Ed_L_H.Text); Memo1.lines.Add := Auto.getDaten; end;
Delphi-Quellcode:
Hier hab ich jetzt wieder das anfangsproblem. Inkompatible Typen und nicht genügend wirkliche Parameter bei der Zeile Memo1.lines.Add := Auto.getDaten;
constructor TFahrzeug.create (M_Bezeichnung: string; M_Leistung: string);
begin Bezeichnung := M_Bezeichnung ; Leistung :=M_Leistung ; end; ... function TFahrzeug.getDaten: string; begin result:= Bezeichnung + Leistung; end; Und ich hab grad echt ein Brett vorm Kopf (wohl eher ne Bohle) |
Re: OOP - Neuling braucht ein bisschen Hilfe
Guten Abend,
Zitat:
Zitat:
Delphi-Quellcode:
.. und gewöhn Dich mal an die Regel "eine Frage pro Thread"
begin
case Radiogroup1.itemindex of 0: begin Bezeichnung := 'Verbrennungsmotor'; Auto:=TFahrzeug.create(Radiogroup1.Items[RadioGroup1.ItemIndex], Ed_L_H.Text); // oder auch // Auto:=TFahrzeug.create(Bezeichnung, Ed_L_H.Text); // oder auch //Auto:=TFahrzeug.create(Radiogroup1.Items[0], Ed_L_H.Text); Memo1.lines.Add := Auto.getDaten; end; Grüße Klaus |
Re: OOP - Neuling braucht ein bisschen Hilfe
Vielen vielen Dank :thumb:
diese Variante hat mir geholfen: Auto:=TFahrzeug.create(Radiogroup1.Items[0], Ed_L_H.Text); Jetzt läuft alles. Die Ausgaben der Klasse und in ein Memo statt Edit bekomm ich auch noch irgentwie hin :) Lg Liam |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz