Abstract method called ?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
LazarusRocks
Beiträge: 40
Registriert: Mo 4. Aug 2008, 09:25
OS, Lazarus, FPC: WinXP(L 0.9.29SVN FPC 2.4.1)
CPU-Target: xxBit
Wohnort: CH

Abstract method called ?

Beitrag von LazarusRocks »

Hallo Leute,

bin am übersetzen einer Komponenten-Sammlung und erhalten nun einen "Abstract method called" Error.
Mir ist klar, dass irgendwo in einer abgeleiteten Klasse eine Implementation einer Methode erwartet wird.

Nun die Frage:
Wäre es evtl. möglich, statt der Fehlermeldung "Abstract Error" evtl. auch die Information anzuzeigen, um welche Klasse es sich handelt?
Würde mir die Sucherei erleichtern.

Also hier ein bisschen mehr Infos mitgeben ?

211 : E:=EAbstractError.Create(SAbstractError);

Was meint ihr dazu ?

Gruss Sämi

Benutzeravatar
theo
Beiträge: 10950
Registriert: Mo 11. Sep 2006, 19:01

Re: Abstract method called ?

Beitrag von theo »

Gibt der Compiler keine Warnung aus, wie:
unit1.pas(34,20) Warning: Constructing a class "TStrings" with abstract methods
?

LazarusRocks
Beiträge: 40
Registriert: Mo 4. Aug 2008, 09:25
OS, Lazarus, FPC: WinXP(L 0.9.29SVN FPC 2.4.1)
CPU-Target: xxBit
Wohnort: CH

Re: Abstract method called ?

Beitrag von LazarusRocks »

Nein leider nicht. Sonst wäre das schon wesentlich einfacher zu finden.

Benutzeravatar
theo
Beiträge: 10950
Registriert: Mo 11. Sep 2006, 19:01

Re: Abstract method called ?

Beitrag von theo »

Debugger? Durch den Code steppen? Call Stack? Bringt alles nix?

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Abstract method called ?

Beitrag von pluto »

Abstract method called
ich glaube hier versuchst du in einer abgeleiteten Klasse eine geerbte Methode aufzurufen die jedoch als Abstract Definiert wurde.
Abstracte Methoden können nicht aufgerufen werden von einer geerbten Klasse. Beispiel:

Code: Alles auswählen

TMeineClasse = class
public
  procedure meinemethode; Abstract; Virtual
 
TMeineClasse2=Class(TMeineClasse)
public
  procedure meinemethode; Override
 
....
procedure TMeineClasse2.meinemethode; 
begin
//  Aufruf von der Geerbten Methode -> Führt zur Fehler Meldung(würde ich sagen)
end;
Ich hoffe du weißt wie ich das meine.
MFG
Michael Springwald

LazarusRocks
Beiträge: 40
Registriert: Mo 4. Aug 2008, 09:25
OS, Lazarus, FPC: WinXP(L 0.9.29SVN FPC 2.4.1)
CPU-Target: xxBit
Wohnort: CH

Re: Abstract method called ?

Beitrag von LazarusRocks »

Danke,Danke,Danke.

Mir ist absolut klar was die Fehlermeldung bedeutet!
Ich werde den Fehler auch finden, da habe ich keine bedenken.
Aber für weniger geübte Personen bringt halt die Fehlermeldung "Abstract method called" nicht wirklich viel.
In meinem Fall befindet sich das Problem irgendwo im "Design-Time-Code".
Also irgendwo beim platzieren/verschieben/vergrössern einer Komponente im Designer.

Und eigentlich habe ich eine andere Frage gestellt:

Die Frage lautet:
Wäre es möglich, dass die Fehlermeldung erweitert wird und etwas mehr Informationen anzeigt ?

Sämi
Dateianhänge
abstract_method_called.JPG
abstract_method_called.JPG (9.63 KiB) 1912 mal betrachtet

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Abstract method called ?

Beitrag von Christian »

Ja wenn du sie abfängst mittels Exception Handling und einen Stacktrace anhängst dann bekommst gleich noch die Aussage mit wo genau in deinem Code die aufgetreten ist sofern Debugsymbole im Executable sind...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6880
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Abstract method called ?

Beitrag von af0815 »

Christian hat geschrieben:.. ist sofern Debugsymbole im Executable sind...
Das wird sein Problem sein. Ich sehe da nur den Ausweg, die entsprechenden Bilbilothen mit debuginfomation zu erstellen. Wird aber heissen, die fcl mit debuinfos zu übersetzen. Denn bei der lcl ist es ja nicht das Problem.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Abstract method called ?

Beitrag von Christian »

De lcl reicht im normalfall völlig.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten