AGB  ·  Datenschutz  ·  Impressum  







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

Exception abstrakter Fehler

Ein Thema von Nimoee · begonnen am 29. Aug 2003 · letzter Beitrag vom 30. Aug 2003
Antwort Antwort
Nimoee

Registriert seit: 20. Aug 2003
Ort: Darmstadt
131 Beiträge
 
Delphi 5 Professional
 
#1

Exception abstrakter Fehler

  Alt 29. Aug 2003, 09:16
Hallo,

kann mir jemand erklären was ein abstrakter Fehler ist?
Wie krieg ich raus wer oder was ihn ausgelöst hat?
( tcanvas3d erzeugt diesen Fehler,wenn ichs verwenden will )

nimoee
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Exception abstrakter Fehler

  Alt 29. Aug 2003, 09:18
Ein Blick in die Hilfe:

Zitat:
EAbstractError wird ausgelöst, wenn eine Anwendung versucht, eine abstrakte Methode aufzurufen. Zur Entwurfszeit wird EabstractError ausgelöst, wenn eine Komponente mit einer abstrakten Methode in einem Formular plaziert wird.

Abstrakte Methoden werden mit der Direktive abstract deklariert und müssen in abgeleiteten Klassen überschrieben werden, bevor ein Instanzobjekt erzeugt werden kann.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Exception abstrakter Fehler

  Alt 29. Aug 2003, 23:27
Moin Nimoee,

Zitat von Nimoee:
Wie krieg ich raus wer oder was ihn ausgelöst hat?
genaugenommen Du selber, vermute ich mal, indem Du eine Klasse instanziert hast, die abstrakte Methoden enthält, und bei der Du dann eine dieser Methoden verwendet hast.

TCanvas3D kenne ich jetzt nicht, aber die Wahrscheinlichkeit ist gross, dass es sich dabei um eine abstrakte Basisklasse handelt (von der man in der Regel keine Instanzen bilden sollte)
Bei als abstract deklarierte Methoden existiert nur der Kopf der Methode (also Name und Parameterliste, falls vorhanden), aber die Methode ist ansonsten nicht implementiert, sondern wird erst in einer abgeleiteten Klasse "mit Leben gefüllt".
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Nimoee

Registriert seit: 20. Aug 2003
Ort: Darmstadt
131 Beiträge
 
Delphi 5 Professional
 
#4

Re: Exception abstrakter Fehler

  Alt 30. Aug 2003, 09:49
Danke Chris,

hab was dazugelernt! Was mir unklar ist, warum erstellt man eine vollkommen leere Basisklasse. Was hat das für einen Sinn?
Wenn die 3d Basisfunktionen dagewesen wären, könnt ich das ja noch verstehen, aber so, die Komponente tcanvas3d ist zu nichts zu gebrauchen, ausser als Erinnerungshilfe.

Nochmals Danke

nimoee
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Exception abstrakter Fehler

  Alt 30. Aug 2003, 16:04
Moin Nimoee,

doch, die Klasse ist noch für anderes zu gebrauchen.
Beispielsweise kannst Du diese Klasse als Typ für einen Parameter bei einem Funktions-/Prozeduraufruf verwenden. Als Parameter kann man dann alle Werte übergeben deren Typ von diesem Abgeleitet ist.

Mein Standardbeispiel hierfür ist TStrings (auch eine abstrakte Klasse). Hiervon sind, u.a., TStringList, und TMemo.Lines abgeleitet. Will man nun beide Arten von Stringslisten als Parameter zulassen, kann man entweder mit overload zwei Deklarationen erstellen, oder man nimmt als Parametertyp die übergeordnete Klasse TStrings.

Sinn machen abstrakte Methoden in Klassen, die als Basisklassen konzipiert sind, bei denen also grundsätzlich geplant ist abgeleitete Klassen zu erstellen. Wenn hierbei klar ist, dass bestimmte Methoden enthalten sein müssen/sollen, diese aber je nach Art der abgeleiteten Klasse anders ausgestaltet sein müssen, macht es nicht unbedingt Sinn hier in der Basisklasse schon eine Funktionalität zu implementieren.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Nimoee

Registriert seit: 20. Aug 2003
Ort: Darmstadt
131 Beiträge
 
Delphi 5 Professional
 
#6

Re: Exception abstrakter Fehler

  Alt 30. Aug 2003, 17:16
aber vollkommen leer? Nix drin?

nimoee
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Exception abstrakter Fehler

  Alt 30. Aug 2003, 17:27
Genau das hab ich in deinem andren Thread auch schon versucht zu erklären.. mein Lieblingsbeispiel für die Sinnhaftigkeit von abstrakten Klassen ist TStream und alle davon abgeleiteten Streams - TFileStream, TMemoryStream, TOleStream, TBlobStream, ....
Manuel Pöter
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz