AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Object in Variable sichern?

Ein Thema von moelski · begonnen am 17. Aug 2006 · letzter Beitrag vom 17. Aug 2006
 
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Object in Variable sichern?

  Alt 17. Aug 2006, 13:23
LastObject ist als TObject deklariert. Der Compiler kann also nicht wissen, dass deine eigene Klasse dahintersteckt. Du musst also entweder einen Typecast machen:

Delphi-Quellcode:
TSpectraII(LastObject).IsLog(Data); //hart
(LastObject as TSpectraII).IsLog(Data); //weich
ein weicher cast ist übrigens meist vorzuziehen, dabei wird eine überprüfung vorgenommen, ob auch wirklich das richtige objekt vorliegt.

ansonsten solltest du eine basisklasse definieren, die diese methode bereits enthält, wie rwachtel geschrieben hat. das geht so:

Delphi-Quellcode:
type
  TDevice = class {abstract} (TObject); //class abstract funktioniert ab Delphi 2005
  public
    function IsLogData: Boolean; virtual; abstract;
  end;
das schlüsselwort "virtual" besagt, dass die methode in einer nachfolgerklasse überschrieben werden kann, "abstract", dass sie in dieser Klasse nicht implementiert (=ausprogrammiert) wird.

überschrieben wird sie dann so:

Delphi-Quellcode:
type
  TSpectraII = class(TDevice)
  public
    function IsLogData; override;
  end;
override sorgt dafpr, dass der aufruf von IsLogData nicht auf die abstrakte Methode des vorgängers prallt, sondern auf die tatsächliche klasse umgeleitet wird.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:02 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