AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

wie verschiedene Objekttypen sinnvoll speichern?

Ein Thema von martin28 · begonnen am 31. Okt 2012 · letzter Beitrag vom 3. Nov 2012
 
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#5

AW: wie verschiedene Objekttypen sinnvoll speichern?

  Alt 2. Nov 2012, 21:42
Für TAuto und TMotorrad nutze ich diese Funktion dann folgendermaßen
Code:
function tanken():byte; reintroduce;
Vermutlich willst du override statt reintroduce . Sonst muss die Methode in der Basisklasse ja nicht als virtuell deklariert sein.

Für die Klasse TLkw möchte ich aber
Code:
function tanken(adblue:boolean):byte; reintroduce;
nutzen.

Wenn ich die Objekte einzeln erzeugen würde, könnte ich die Funktion auch problemlos nutzen
Code:
var golf:TAuto;
var laster:TLkw;
begin
   golf := TAuto.create;
   golf.tanken()
   laster := TLkw.create;
   laster.tanken(TRUE);


Da ich aber jetzt die Deklaration über
Code:
var fahrzeugpool : array[0..3] of TFahrzeug;
und
Code:
   fahrzeugpool[0] := TAuto.create;
   fahrzeugpool[1] := TLkw.create;
nutze, bekomme ich bei
Code:
   adblue_tanken := TRUE;
   fahrzeugpool[1].tanken(adblue_tanken);
ein Compilerfehler. (Too many actual parameters)
Ist ja auch klar, da in der TFahrzeug Funktion tanken() kein weiterer Parameter vorhanden ist.

Wie kann ich dennoch auf die tanken-Funktion vom LKW mit dem Parameter zugreifen?
Entweder casten:
TLkw(fahrzeugpool[1]).tanken(adblue_tanken); Oder du nutzt eine Zwischen-Variable:
Delphi-Quellcode:
var
  laster: TLkw;
begin
 laster := TLkw.Create;
 fahrzeugpool[1] := laster;
 laster.tanken(True);
PS. habe jetzt alle Namen zur leichteren Lesbarkeit angepasst
Du wirst mir noch dankbar sein.
Uli Gerhardt
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 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