AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Hilfe! Die Delphi-IDE hängt sich beim beim Schließen auf.
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe! Die Delphi-IDE hängt sich beim beim Schließen auf.

Ein Thema von Achim Kalwa · begonnen am 21. Sep 2007 · letzter Beitrag vom 21. Sep 2007
Antwort Antwort
Achim Kalwa

Registriert seit: 2. Apr 2005
Ort: Lienen
110 Beiträge
 
Delphi 12 Athens
 
#1

Hilfe! Die Delphi-IDE hängt sich beim beim Schließen auf.

  Alt 21. Sep 2007, 13:43
Hallo *

Ich stehe hier vor einem ungewöhnlichen Problem:

In meinem Delphi-Projekt befinden sich ca. 540 Units, und bei genau zweien davon spinnt die IDE:
Wenn ich diese Unit (enthält ein Form) in der IDE geöffnet habe und die Unit dann schließe -- auf welchem Weg ist dabei egal, z.B. File->Close -- dann hängt sich die Delphi IDE auf:

Der Inhalt des aktuellen Edit-Tabs verschwindet, aber der Editor-Tab bleibt sichtbar.
Die CPU-Last steigt auf 100%, es finden aber keinerlei Dateizugriffe statt (mit FileMon überprüft).
Es hilft dann nur das Abschießen des Tasks.

Der Fehler tritt jedoch nicht auf, wenn ich die gesamte IDE schließe/beende.

Der Code in der Unit ist syntaktisch Ok, er lässt sich ohne Fehler/Warnungen/Hinweise compilieren und macht zur Laufzeit auch genau das, was er soll. Ich kann im Editor ohne Probleme arbeiten, auch der Form-Designer funktioniert einwandfrei. Ebenso kann ich die geänderte Unit speichern, alles kein Problem.

Nur schließen kann ich die Unit nicht, sonst hängt sich Delphi auf.

Das Problem ist nicht leider nicht neu; der Fehler tritt auf mit
- Delphi 7 Enterprise (Deutsch)
- Delphi 2007 Professional (English)

Was macht die IDE beim Schließen einer Unit? Wie kann ich das Problem eingrenzen?

Vielen Dank im Voraus für hoffentlich zahlreiche Tipps.

Achim
Achim
  Mit Zitat antworten Zitat
Benutzerbild von vsti
vsti

Registriert seit: 20. Sep 2004
Ort: Syke
70 Beiträge
 
Delphi 2005 Architect
 
#2

Re: Hilfe! Die Delphi-IDE hängt sich beim beim Schließen auf

  Alt 21. Sep 2007, 14:16
Das kommt mir irgendwie sehr bekannt vor...

Grade bei großen Projekten (bei uns weit über 500 Units) und Units, die mit vielen anderen Units untereinenader verknüpft sind, habe ich bei Delphi 2005 REGELMÄßIG Hänger von mehreren Minuten, ehe sie die IDE erholt hat oder eben ganz und gar aufgibt. Allerdings war das bei Delphi 7 noch nicht so, erst nachdem bei uns Delphi 2005 ins Haus flatterte.
Ich vermute es hängt damit zusammen, dass bei den Units die in den Uses untereinander verknüpft sind noch irgendwelche Prüfungen statt finden ehe diese geschlossen werden kann. Und ich vermute mal, wenn du lange genug wartest würde sich die IDE evtl. wieder erholen. Ich orientiere mich immer an der CPU- und Speicherauslastung. Wenn CPU auf 99 Prozent ist, aber die Speicherauslastung sich noch ändert, heißt, dass das da noch was passiert und ich nur Geduld haben muss. Wenn der Speicher auch statisch bleibt, kannst den Prozess abschießen. Wie ist es denn bei dir?
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Hilfe! Die Delphi-IDE hängt sich beim beim Schließen auf

  Alt 21. Sep 2007, 14:19
Ich würde so vorgehen.

Eine neue Unit erzeugen.
Den Code der "bösen" Unit in die neue komplett kopieren.
Dann den Inhalt des "bösen" Forms auf das neue Form kopieren.
Die "böse" Unit umbenennen und die neue mit dem gleichen Namen benennen.

Vielleicht ist irgendwo ein komischer Zeilenumbruch, oder am Ende der Unit ist iegendein flasches Zeichen oder im Formular ist irgendwas von Löschen übriggeblieben.

Ich hatte den Fall nämlich auch mal, dass sich die IDE beim Öffnen einer Unit aufgehängt hat.
Da hab ich das obige Vorgehen benutzt und es hat geholfen.
Beim anschliessenden Vergleichen mit ExamDiff hat sich herausgestellt, dass in der kaputten Unit in einer Zeile ein ^M versteckt hatte. Der Delphi-Editor hat dies nicht angezeigt, der Dateibetrachter von ExamDiff jedoch schon.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Achim Kalwa

Registriert seit: 2. Apr 2005
Ort: Lienen
110 Beiträge
 
Delphi 12 Athens
 
#4

Re: Hilfe! Die Delphi-IDE hängt sich beim beim Schließen auf

  Alt 21. Sep 2007, 14:22
Hallo Leidensgenosse!

Zitat von vsti:
Und ich vermute mal, wenn du lange genug wartest würde sich die IDE evtl. wieder erholen. Ich orientiere mich immer an der CPU- und Speicherauslastung. Wenn CPU auf 99 Prozent ist, aber die Speicherauslastung sich noch ändert, heißt, dass das da noch was passiert und ich nur Geduld haben muss. Wenn der Speicher auch statisch bleibt, kannst den Prozess abschießen. Wie ist es denn bei dir?
Ich habe der IDE schon mal 3 Stunden Wartezeit gegönnt; ohne Erfolg. Die Speicherauslastung bleibt unverändert; keine Dateizugriffe, nix.

Gerade habe ich eine der beiden betroffenen Units in ein anderes Verzeichnis kopiert und ein neues Projekt drumherum erstellt. Das lässt sich zwar nicht compilieren, weil jede Menge anderer benötigter Units fehlen, aber der Fehler beim Schließen der Unit tritt trotzdem auf

Da werde ich mal weiter testen...

Achim
Achim
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Hilfe! Die Delphi-IDE hängt sich beim beim Schließen auf

  Alt 21. Sep 2007, 14:26
für mich klingt das eher nach einer fehlerhaften Komponente welche durch die Integration in der IDE auch erzeugt und frei gegeben wird. Ist im Quelltext des Freigebens jetzt irgendwo ein Hänger oder eine Endlosschleife hängt natürlich auch die IDE.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Achim Kalwa

Registriert seit: 2. Apr 2005
Ort: Lienen
110 Beiträge
 
Delphi 12 Athens
 
#6

Re: Hilfe! Die Delphi-IDE hängt sich beim beim Schließen auf

  Alt 21. Sep 2007, 14:29
Hallo,

Zitat von RavenIV:
Eine neue Unit erzeugen.
Den Code der "bösen" Unit in die neue komplett kopieren.
Dann den Inhalt des "bösen" Forms auf das neue Form kopieren.
Die "böse" Unit umbenennen und die neue mit dem gleichen Namen benennen.
gerade ausprobiert:
Der Fehler wandert mit. D.h. auch beim Schließen der neuen Unit mit dem kopierten Code/Form tritt der Fehler auf
Achim
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Hilfe! Die Delphi-IDE hängt sich beim beim Schließen auf

  Alt 21. Sep 2007, 14:31
Zitat von kalwados:
gerade ausprobiert:
Der Fehler wandert mit. D.h. auch beim Schließen der neuen Unit mit dem kopierten Code/Form tritt der Fehler auf
Versuch mal, die .pas und die .dfm im Windows-Texteditor zu öffnen und wieder zu speichern.
Der kann nämlich keine Sonderzeichen lesen und schreiben.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#8

Re: Hilfe! Die Delphi-IDE hängt sich beim beim Schließen auf

  Alt 21. Sep 2007, 14:43
Den Fehler hatte ich vor ein paar Monaten, als ich von Delphi5 auf BDS2006 umgestiegen bin. Es lag an einer fehlerhaften Komponente.

Ich konnte auch eine Form bestimmen, die beim Schliessen den Hänger verursacht hat.

Ich habe es so gelöst: Alle Komponenten, die auf der Form vorhanden sind merken. Dann eine Dummyform erzeugen und nacheinander die betreffenden Komponenten auf das Form setzten. Nach jeder Komponente die Form speichern schliessen und wieder öffnen. Wenn Delphi beim Schliessen der Form einfriert, kennst du die Komponente, die den Fehler verursacht hat.

Ich bin den Fehler umgangen, indem ich die Komponente von der entsprechenden Form entfernt habe un diese im OnCreate manuell instanziert habe.


Gerd
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Achim Kalwa

Registriert seit: 2. Apr 2005
Ort: Lienen
110 Beiträge
 
Delphi 12 Athens
 
#9

Re: Hilfe! Die Delphi-IDE hängt sich beim beim Schließen auf

  Alt 21. Sep 2007, 15:09
Hallo,

Zitat von SirThornberry:
für mich klingt das eher nach einer fehlerhaften Komponente welche durch die Integration in der IDE auch erzeugt und frei gegeben wird. Ist im Quelltext des Freigebens jetzt irgendwo ein Hänger oder eine Endlosschleife hängt natürlich auch die IDE.
Ja, so langsam glaube ich auch an eine fehlerhafte Komponente.
Vermutlich habe ich sie gerade identifiziert...

(10 Minuten später...)

Ich hab's gefunden

Delphi-Quellcode:
procedure TCustomDataExport.Notification(AComponent: TComponent; Operation: TOperation);
begin
  if (Operation = opRemove) then begin
    if (Assigned(FDataset)) and (AComponent = FDataset)
    then begin
      FDataset := nil;
    end;

    if (AComponent is TDBGrid) and (TDBGrid(AComponent).SelectedRows = FBookmarkList)
    then begin
      FBookmarkList := nil;
    end;
  end;
end;
Na, wer sieht den Fehler?

Achim
Achim
  Mit Zitat antworten Zitat
Achim Kalwa

Registriert seit: 2. Apr 2005
Ort: Lienen
110 Beiträge
 
Delphi 12 Athens
 
#10

Re: Hilfe! Die Delphi-IDE hängt sich beim beim Schließen auf

  Alt 21. Sep 2007, 15:23
Zitat von kalwados:
Na, wer sieht den Fehler?
Ok, ich werde Euch nicht länger auf die Folter spannen. Es handelt sich (natürlich) um eine selbst geschriebene Komponente. Im oben gezeigten Code fehlt eine Zeile mit folgendem Code:inherited; Danke für's lesen

Achim
Achim
  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 19:44 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