AGB  ·  Datenschutz  ·  Impressum  







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

Abstrakter Fehler

Ein Thema von Martin W · begonnen am 25. Feb 2005 · letzter Beitrag vom 26. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2      
Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#1

Abstrakter Fehler

  Alt 25. Feb 2005, 20:02
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

self.free; 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.close; schließe, kommt ne fehlermeldung, die lautet:

---------------------------
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.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Abstrakter Fehler

  Alt 25. Feb 2005, 20:07
Hi,

Du kannst Dir einmal das Delphi-Referenz durchsuchenOnClose Ereignis des Forms anschauen.

Alternativ kannst Du versuchen das Form Modal anzuzeigen.

PseudoCode
Delphi-Quellcode:
with TForm.Create(SomeOwner) do
try
  ShowModal();
finally
  Free;
end;
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.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#3

Re: Abstrakter Fehler

  Alt 25. Feb 2005, 20:12
Modal ist keine Lösung... der Benutzer muss bei mir zwischen mehreren Formen hin- und her wechsel können.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Abstrakter Fehler

  Alt 25. Feb 2005, 20:30
Brauchst du die Fenster mehrmals? Wenn nicht, erstelle doch alle Forms beim Programmstart und verwende dann Delphi-Referenz durchsuchenHide und Delphi-Referenz durchsuchenShow. Dann hast du drei Variablen und keine AVs.
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?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#5

Re: Abstrakter Fehler

  Alt 25. Feb 2005, 21:15
Ja, ich brauch die Fenster unbestimmt oft.. da ist ja das Problem!
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#6

Re: Abstrakter Fehler

  Alt 25. Feb 2005, 22:07
Im OnClose entweder Release verwenden statt Free oder Action auf caFree setzen.

Gruß, teebee
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: Abstrakter Fehler

  Alt 25. Feb 2005, 22:18
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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#8

Re: Abstrakter Fehler

  Alt 26. Feb 2005, 10:23
Zitat von teebee:
Im OnClose entweder Release verwenden statt Free oder Action auf caFree setzen.

Gruß, teebee
Wie meinst du das genau?


Zitat von Hansa:
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.
Ich hab aber keine Prozedure mit "Abstract" oder sonst was versehen...
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#9

Re: Abstrakter Fehler

  Alt 26. Feb 2005, 11:02
Zitat von Martin W:
Wie meinst du das genau?
Schau Dir in der Online-Hilfe mal die Parameter von OnClose an! "Action" ist genau für das vorgesehen, was Du vorhast. (Übrigens hat Dich mirage228 schon in der ersten Antwort darauf aufmerksam gemacht...)
Oder schau Dir die Methode Release von TCustomForm an! Es gibt übrigens eine F1-Taste...

Gruß, teebee
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Abstrakter Fehler

  Alt 26. Feb 2005, 12:49
Zitat von Martin W:
...Ich hab aber keine Prozedure mit "Abstract" oder sonst was versehen...
Du vielleicht nicht. Aber ist eventuell eine Fremdkomponente im Spiel ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:38 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