Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Abstrakter Fehler (https://www.delphipraxis.net/82505-abstrakter-fehler.html)

technofreak 14. Dez 2006 15:29


Abstrakter Fehler
 
Habe ein Programm geschrieben (besserer gesagt bin noch dabei) und es läuft. Rufe beim Start das hauptfenseter und ein 2. Fenster auf, wobei das 2. nach Auswahl per RadioButton und "Weiter" gschlossen wird. Wenn ich jetzt dem Hauptfenster ein Button, Label RadioButton oder RadioButtonGroup (andere noch nicht probiert) hinzufüge und das Programm laufen lasse bricht es nach dem Schließen des 2. Fensters mit "Abstrakter Fehler" ab, eagl ob ich die Elemente noch mit Code belege oder nicht. Woran kann das liegen?

Falls jemand da was weiß würde ich mich freuen an dem Wissen teilhaben zu dürfen.

technofreak

mkinzler 14. Dez 2006 15:35

Re: Abstrakter Fehler
 
Wie rufst du das 2. fenster auf? Bzw. hast du dieses erzeugt?

Christian Seehase 14. Dez 2006 15:38

Re: Abstrakter Fehler
 
Moin technofreak,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Die Meldung "Abstrakter Fehler" tritt auf, wenn man von einer abstrakten Klasse (z.B. TStrings) eine Instanz bildet (Create) und dann eine der abstrakten Methoden verwendet.
Abstrakt heisst:
Es wird eine Methode deklariert, aber mit dem Schlüsselwort abstract versehen, das dem Compiler anzeigt, dass diese Klasse nur die Deklaration der Methode enthält, aber keine Implementierung.
I.d.R. sollte man von abstrakten Klassen keine Instanzen bilden, sondern nur von davon abgeleiteten Klassen, bei denen die abstrakten Methoden "mit Leben gefüllt" wurden.

Abstrakte Klassen kann man aber, z.B., als Parametertyp angeben.
Um bei TStrings zu bleiben:
Wird TStrings als Parametertyp angegeben, kann man sowohl etwas vom Typ TStringList, als auch TMemo.Lines übergeben, da beide von TStrings abstammen.

3_of_8 14. Dez 2006 15:42

Re: Abstrakter Fehler
 
Man kann von TStrings sehr wohl eine Instanz erstellen. Aber man kriegt eine Warnung. Einen abstrakten Fehler kriegt man, wenn man eine abstrakte Methode aufruft.

Christian Seehase 14. Dez 2006 15:50

Re: Abstrakter Fehler
 
Moin Manuel,

hab' ich was anderes geschrieben ;-)

technofreak 14. Dez 2006 15:51

Re: Abstrakter Fehler
 
@ mkinzler

Setze beim 2. Fenster beim Start Visble auf True und fsstayontop auch. Damit steht das 2. Fenster vor dem Hauptfenster. Is zwar nicht aktiv, aber is egal weil wird es ja wenn ich da was anklicke.
Im Hauptprogramm steht 3 mal Create.Form 1. Hauptfenster, 2. AboutBox, 3. Form1


@ Christian Seehase

Hab ich schon öfter von gelesen. Benutze ich aber nicht. Wie gesagt das Programm läuft, und wenn ich dann z.B. nen Label hinzufüge und dann wieder laufen lasse kommt der Fehler. Dabei ist das Label nur ne Beschriftung, wird im Code nirgends angesprochen.

3_of_8 14. Dez 2006 15:52

Re: Abstrakter Fehler
 
@Seehase:
Sorry, habs zwar vorsichtshalber mehrmals durchgelesen, aber trotzdem die 2. Zeile übersehen... :oops: :wall:

Christian Seehase 14. Dez 2006 15:55

Re: Abstrakter Fehler
 
Moin Technofreak,

die Fehlermeldung ist eigentlich eindeutig.

Hast Du mal versucht das Fenster im Einzelschritt zu schliessen?
Dazu könntest Du, nur zum Testen, mal ein OnClose bzw. OnCloseQuery einbauen, um möglichst spät einen Breakpoint setzen zu können.

technofreak 14. Dez 2006 15:57

Re: Abstrakter Fehler
 
Hab mit Einzelschritt schon versucht. Macht das 2. fenster zu, dann FEHLER.

technofreak 15. Dez 2006 07:48

Re: Abstrakter Fehler
 
Hab grad noch mal getestet.

Programm seit gestern nicht verändert, gestern lief es heut "Abstrakter Fehler".

Einen Button entfernt, gespeichert, compiliert -> lief.
Mit STRG+Z rückgängig gemacht, gespeichert, compiliert ->lief. :gruebel:

Kann das jemand nachvollziehen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 Uhr.
Seite 1 von 2  1 2      

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