AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Debugging in OnActivate hängt sich auf

Debugging in OnActivate hängt sich auf

Ein Thema von zeras · begonnen am 6. Aug 2011 · letzter Beitrag vom 8. Aug 2011
Antwort Antwort
Seite 3 von 3     123
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
4.830 Beiträge
 
Delphi XE7 Enterprise
 
#21

AW: Debugging in OnActivate hängt sich auf

  Alt 7. Aug 2011, 15:35
Du kannst mal schauen, ob FastMM im FullDebugMode irgendwelche Probleme entdeckt. Denn überschriebener Speicher o.ä. ist einer der möglichen Gründe für solche Probleme.

Ein anderes mögliches Problem tritt bei Verwendung von Threads auf. Unter seltenen Umständen führte das bei Delphi 2009 zu Deadlocks. Erkennen kann man dieses Problem in der Regel daran, dass Windows anbietet das Problem zu reparieren und daraufhin den Deadlock automatisch auflöst.

Beim Remote Debugger von XE passiert das immer wieder mal. Wenn man das dann macht, funktioniert Delphi wieder normal, nur die Verbindung bricht mit einer Assertion ab:

radstudiorestoreremotedebug.png
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Langeneichstädt
682 Beiträge
 
Delphi XE5 Professional
 
#22

AW: Debugging in OnActivate hängt sich auf

  Alt 7. Aug 2011, 16:28
Du kannst mal schauen, ob FastMM im FullDebugMode irgendwelche Probleme entdeckt. Denn überschriebener Speicher o.ä. ist einer der möglichen Gründe für solche Probleme.
Das habe ich nun eingebunden, aber ich weiß nicht, was man damit machen soll. Weder nach dem Start, noch beim Beenden kommt irgendeine Meldung.

Ein anderes mögliches Problem tritt bei Verwendung von Threads auf. Unter seltenen Umständen führte das bei Delphi 2009 zu Deadlocks. Erkennen kann man dieses Problem in der Regel daran, dass Windows anbietet das Problem zu reparieren und daraufhin den Deadlock automatisch auflöst.
Ich habe keine Threads drin, weiß aber nicht, inwieweit TMS da was mitbringt bei den Grids.
Matthias
Es war einmal ein Fehler. Der fühlte sich alleine. So schloß er Freundschaft mit anderen Fehlern. Und wenn sie nicht gestorben sind, dann leben sie noch heute (in dem ein oder anderen Programm).
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
4.830 Beiträge
 
Delphi XE7 Enterprise
 
#23

AW: Debugging in OnActivate hängt sich auf

  Alt 7. Aug 2011, 17:20
Das habe ich nun eingebunden, aber ich weiß nicht, was man damit machen soll. Weder nach dem Start, noch beim Beenden kommt irgendeine Meldung.
Du musst das in der Include-Datei entsprechend einstellen.
Zum Beispiel die Option {$define FullDebugMode} solltest du wie gesagt aktivieren. Da die Optionen äußerst detailliert beschrieben sind, sollte das eigentlich kein Problem sein.

Ich hänge einfach mal die Optionsdatei an, die ich hier für das Debuggen in der Regel nutze. Mit BeyondCompare z.B. kannst du ja sehen welche Optionen ich gegenüber deinen geändert habe.
Angehängte Dateien
Dateityp: zip FastMM4Options.zip (5,8 KB, 1x aufgerufen)
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Langeneichstädt
682 Beiträge
 
Delphi XE5 Professional
 
#24

AW: Debugging in OnActivate hängt sich auf

  Alt 7. Aug 2011, 17:45

Ich hänge einfach mal die Optionsdatei an, die ich hier für das Debuggen in der Regel nutze. Mit BeyondCompare z.B. kannst du ja sehen welche Optionen ich gegenüber deinen geändert habe.
Danke, habe das alles eingebunden. Kommt da irgendeine Anzeige oder etwas anderes, was anzeigt, dass etwas "faul" ist?

Irgendwie kommt mir das vor, dass ich irgendeinen Denkfehler drin habe. Ich habe ein Grid und beim Doppelklick rufe ich ein weiteres Form auf, wo der Inhalt einer Zeile des ersten Grids aufgezeigt wird. Die Aktualisierung der Daten mache ich dann in OnActivate und da ich noch OnChange für die jeweiligen TEdits habe, müßte dann das OnActivate je mehrmals ansprechen, da ich einige TEdits mit Daten fülle. In dem Moment ist vielleicht aber das 2. Form noch nicht 100%ig fertig, weil ich das im OnActivate mache.
Aber wie soll ich sonst die Daten ins neue Form bringen?
Matthias
Es war einmal ein Fehler. Der fühlte sich alleine. So schloß er Freundschaft mit anderen Fehlern. Und wenn sie nicht gestorben sind, dann leben sie noch heute (in dem ein oder anderen Programm).
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
4.830 Beiträge
 
Delphi XE7 Enterprise
 
#25

AW: Debugging in OnActivate hängt sich auf

  Alt 7. Aug 2011, 18:24
Danke, habe das alles eingebunden. Kommt da irgendeine Anzeige oder etwas anderes, was anzeigt, dass etwas "faul" ist?
Ja, z.B. beim Beenden des Programms.

Aber wie soll ich sonst die Daten ins neue Form bringen?
Ich dachte es mir doch schon, dass OnActivate nicht wirklich sinnvoll ist...
Das geht viel einfacher:
Delphi-Quellcode:
var
  MySecondForm: TMySecondForm;
begin
  MySecondForm := TMySecondForm.Create(Self);
  try
    MySecondForm.LoadData(MyDataObject);
    MySecondForm.ShowModal;
  finally
    MySecondForm.Free;
  end;
end;
Das mal als Beispiel.
Du kannst doch vor der Anzeige einfach die Daten aktualisieren und dann erst das Formular anzeigen. Da brauchst du keine Events oder irgendwas.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Langeneichstädt
682 Beiträge
 
Delphi XE5 Professional
 
#26

AW: Debugging in OnActivate hängt sich auf

  Alt 7. Aug 2011, 18:35
Du kannst doch vor der Anzeige einfach die Daten aktualisieren und dann erst das Formular anzeigen. Da brauchst du keine Events oder irgendwas.
Das hatte ich Anfangs auch so gemacht, dachte dann aber, dass es Probleme gibt, wenn das Form noch nicht sichtbar ist

Delphi-Quellcode:
begin

  //hier die Details zum Kunden anzeigen
  R := SGLizenz.Row;
  with fShowDetails do begin
    EFirma.Text := SGLizenz.Cells[ColFirma, R];
    .....

    if fShowDetails.ShowModal = mrOK then begin

      SGLizenz.Cells[ColFirma, R] := EFirma.Text;
      .....

    end;
  end;
end;
Matthias
Es war einmal ein Fehler. Der fühlte sich alleine. So schloß er Freundschaft mit anderen Fehlern. Und wenn sie nicht gestorben sind, dann leben sie noch heute (in dem ein oder anderen Programm).
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
4.830 Beiträge
 
Delphi XE7 Enterprise
 
#27

AW: Debugging in OnActivate hängt sich auf

  Alt 7. Aug 2011, 20:35
Direkt auf die Komponenten im fremden Formular zuzugreifen ist keine gute Idee. Übergib besser nur eine Datenklasse oder ähnliches an Properties oder Methoden des Formulars und lass das das Formular selbst machen.

Sonst verbandelst du die Daten und die Logik mit der GUI und die interne Logik fremder Klassen (deines Formulars) mit anderen...

Es kann Probleme geben, wenn ein Formular noch nicht sichtbar ist, aber eigentlich nur bei falsch geschriebenen Komponenten, z.B. bei SynEdit.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Langeneichstädt
682 Beiträge
 
Delphi XE5 Professional
 
#28

AW: Debugging in OnActivate hängt sich auf

  Alt 8. Aug 2011, 19:29
Ich habe nun das Programm genommen und nach und nach alles rausgeschmissen. Nun hat das Programm nicht einmal mehr ein Formular.
Übriggeblieben ist folgender Code:

Delphi-Quellcode:
program Live;


uses
  Forms;


{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.Run;
end.
Was für ein Code? Aus diesem Code sind es sage und schreibe immer noch2,2 MB.
Wenn ich ein neues Projekt erzeuge, dann sind um die 500 kB.

Habe auch schon alle DCU gelöscht und alles, außer der dpr Datei.
Sorry, beim ersten Mal war noch das Projekt offen. Immer noch um die 2MB.
Nun Projekt geschlossen und alles außer dpr gelöscht. Nun sind es knapp 500MB.
Matthias
Es war einmal ein Fehler. Der fühlte sich alleine. So schloß er Freundschaft mit anderen Fehlern. Und wenn sie nicht gestorben sind, dann leben sie noch heute (in dem ein oder anderen Programm).

Geändert von zeras ( 8. Aug 2011 um 19:34 Uhr)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Langeneichstädt
682 Beiträge
 
Delphi XE5 Professional
 
#29

AW: Debugging in OnActivate hängt sich auf

  Alt 8. Aug 2011, 19:59
Offensichtlich habe ich nun wieder ein Projekt, in welchem ich debuggen kann.
Ich habe alle Dateien gelöscht, die den Namen der Exe hatten, außer der DPR Datei. Dazu noch alle DCU Dateien.
Dann wieder alles kompiliert und siehe da, das debuggen geht wieder. Die Exe ist dann von ca. 8Mb auf 2,5 Mb geschrumpft.
Muss wohl etwas in den Dateien gestanden haben, was das ganze durcheinandergebracht hatte.

Danke trotzdem für eure Hilfe.

Matthias
Matthias
Es war einmal ein Fehler. Der fühlte sich alleine. So schloß er Freundschaft mit anderen Fehlern. Und wenn sie nicht gestorben sind, dann leben sie noch heute (in dem ein oder anderen Programm).
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2014 by Daniel R. Wolf