![]() |
Abstrakter Fehler
Also ich hab folgendes Problem. Also ich hab eine anweundung mit 3 Formen. Die Formen haben die Namen:
- form_a - form_b - form_c form_a wird beim Programmstart automatisch erzeugt, form_b und form_c nicht. (eingestellt in Projekt > Optionen). Beim Klick auf einen Button auf form_a wird form_b erzeugt und angezeigt. Der Code lautet:
Delphi-Quellcode:
with Tform_b.Create(form_a) do
begin Show; end; Auf Form_b ist auch wieder ein Button, der form_c erstellt und anzeigt, code ist wieder:
Delphi-Quellcode:
with Tform_c.Create(form_a) do
begin Show; end; Im OnClose von form_b und form_c steht
Delphi-Quellcode:
Wenn ich jetzt ein Fenster schließe klappt das auch prima, arbeitsspeicher wird freigegeben. ABER wenn ich ein Fenster (form_b oder form_c) mit
self.free;
Delphi-Quellcode:
schließe, kommt ne fehlermeldung, die lautet:
self.close;
--------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Fire_Supportabteilung.exe ist eine Exception der Klasse EAbstractError aufgetreten. Meldung: 'Abstrakter Fehler'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. --------------------------- OK Hilfe --------------------------- Hinweise zur Fehleranalyse: Hab mal versucht dass "self.free" aus OnClose auszuschneiden und direkt aufzurufen... es kam der selbe Fehler! Was soll ich tun??? Danke für antworten im vorraus =) Gruß Martin W. |
Re: Abstrakter Fehler
Hi,
Du kannst Dir einmal das ![]() Alternativ kannst Du versuchen das Form Modal anzuzeigen. PseudoCode
Delphi-Quellcode:
Du musst nur achten die ModalResult Eigenschaft bei deinem "Verlassen"-Button zu setzen, falls Du kein Schließen Kreuz auf Deinem Fenster anzeigen lässt.
with TForm.Create(SomeOwner) do
try ShowModal(); finally Free; end; mfG mirage228 |
Re: Abstrakter Fehler
Modal ist keine Lösung... der Benutzer muss bei mir zwischen mehreren Formen hin- und her wechsel können.
|
Re: Abstrakter Fehler
Brauchst du die Fenster mehrmals? Wenn nicht, erstelle doch alle Forms beim Programmstart und verwende dann
![]() ![]() afair gibt es Krach, weil im Eventhandler der Form diesselbe freigegeben wird oder täusche ich mich da? PS: Bin ich blind oder gibt es dein OH-Button nicht mher? |
Re: Abstrakter Fehler
Ja, ich brauch die Fenster unbestimmt oft.. da ist ja das Problem!
|
Re: Abstrakter Fehler
Im OnClose entweder Release verwenden statt Free oder Action auf caFree setzen.
Gruß, teebee |
Re: Abstrakter Fehler
Dieser Fehler ist lästig. Er läßt sich aber nicht vermeiden. In deinem Programm steckt vermutlich eine als "abstract" deklarierte Methode drin. Also ist nur der Kopf der procedure deklariert und sonst nichts. Wird diese Prozedur nun nicht in abgeleiteten Classes als override und mit notfalls leerem procedure-Rumpf deklariert, dann kommt "abstrakter Fehler" ohne Adresse usw.
So kenne ich das. Es könnte aber auch was ganz anderes sein. :mrgreen: |
Re: Abstrakter Fehler
Zitat:
Zitat:
|
Re: Abstrakter Fehler
Zitat:
Oder schau Dir die Methode Release von TCustomForm an! Es gibt übrigens eine F1-Taste... Gruß, teebee |
Re: Abstrakter Fehler
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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