AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Abstrakter Fehler beim Schließen eines MDI-Childs
Thema durchsuchen
Ansicht
Themen-Optionen

Abstrakter Fehler beim Schließen eines MDI-Childs

Ein Thema von sirtoby73 · begonnen am 17. Sep 2003 · letzter Beitrag vom 17. Sep 2003
Antwort Antwort
sirtoby73

Registriert seit: 17. Sep 2003
19 Beiträge
 
Delphi 7 Professional
 
#1

Abstrakter Fehler beim Schließen eines MDI-Childs

  Alt 17. Sep 2003, 20:37
Ich benutze in meiner MDI-Anwendung folgenden Code, um zu checken, ob eine Formularinstanz eines MDIChilds bereits existiert.
Eine ggf. vorhandene Instanz soll weiterverwendet werden, ansonsten wird eine neue Instanz erzeugt.
Der Aufruf erfolgt im Menü des Hauptformulars frmMain (vom Typ fsMDIForm).

Delphi-Quellcode:
procedure TfrmMain.WochenplanungClick(Sender: TObject);
begin
     //Formular öffnen, ggf. Speicher allozieren
     if not Assigned (frmWochenplanung) then
        frmWochenplanung:=TfrmWochenplanung.Create(self)
     else
        frmWochenplanung.Show;
     //Fenster ggf. aus dem minimierten Zustand holen
     frmWochenplanung.WindowState:=wsNormal;
end;
Im OnClose-Ereignis des MDIChilds nutze ich zur Speicherfreigabe einfach folgendes:
FreeAndNil(frmWochenplanung); Das ganze klappt soweit ganz gut, aber hin und wieder (nach diversen Öffnen und Schließen-Vorgängen) gibt es beim Schließen einen "Abstract Error", irgendwas scheint da mit der Speicherverwaltung nicht zu klappen (?). Jemand eine Idee ?

Zitat:
Eigentlich ist es egal, welche Farbe ein Ferrari hat - hauptsache, er ist rot!
(Gehört in "Exclusiv-Weekend" / RTL)
  Mit Zitat antworten Zitat
Delphianer

Registriert seit: 19. Feb 2003
Ort: Rossau
149 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

Re: Abstrakter Fehler beim Schließen eines MDI-Childs

  Alt 17. Sep 2003, 20:53
Hallo,

der Code funktioniert bei mir ohne Probleme. Kann es sein, daß etwas anderes nicht sauber freigegeben wird? Ansonsten Projekt/Optionen/Compiler und 'Mit Debug-DCUs' einschalten. Wenn Du Dir dann noch den Aufruf-Stack anzeigen läßt, siehst Du evtl. wo der Fehler herkommt.

Viele Grüße,

Delphianer
Lutz
  Mit Zitat antworten Zitat
sirtoby73

Registriert seit: 17. Sep 2003
19 Beiträge
 
Delphi 7 Professional
 
#3

Re: Abstrakter Fehler beim Schließen eines MDI-Childs

  Alt 17. Sep 2003, 21:17
Danke für die schnelle Antwort, wirklich ein ergiebiges Forum hier...
Na, dann lag ich ja nicht völlig daneben mit meinem Code.

Ich denke, das eine ADOQuery auf dem Formular vielleicht die Übeltäterin sein könnte. Nicht auszuschließen, dass da irgendwas noch nicht sauber ist.
Ansonsten hat das MDIChild nur ein DBGrid, das das Ergbenis der Abfrage (nach Auswahl eines Filterkriteriums per Combobox) enthält. Also nichts Aufregendes...

Inzwischen habe ich festgestellt, das das Problem auch bei anderen Forms auftritt, die allesamt eine ähnliche Grundstruktur haben (1-5 ADOQuerys, DBGrids). Es ist halt nur nicht auszumachen, warum die Fehlermeldung beim Schließen kommt. Es ist einfach nicht reproduzierbar.

Ich werde das Ganze mal mit Deinem Hinweis zum Aufrufstack genauer unter die Lupe nehmen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Abstrakter Fehler beim Schließen eines MDI-Childs

  Alt 17. Sep 2003, 21:31
Moin sirtoby,

erst einmal herzlich willkommen hier in der DelphiPRAXiS.

Ein abstrakter Fehler deutet meist darauf hin, dass eine als abstract deklarierte Methode verwendet wurde. Abstrakte Klassen, also Klassen die abstrakte Methoden enthalten sollte man allerdings nicht direkt verwenden, sondern nur als Basisklasse für Ableitugen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:11 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