![]() |
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 |
Re: Abstrakter Fehler
Wie rufst du das 2. fenster auf? Bzw. hast du dieses erzeugt?
|
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. |
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.
|
Re: Abstrakter Fehler
Moin Manuel,
hab' ich was anderes geschrieben ;-) |
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. |
Re: Abstrakter Fehler
@Seehase:
Sorry, habs zwar vorsichtshalber mehrmals durchgelesen, aber trotzdem die 2. Zeile übersehen... :oops: :wall: |
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. |
Re: Abstrakter Fehler
Hab mit Einzelschritt schon versucht. Macht das 2. fenster zu, dann FEHLER.
|
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 09:20 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