![]() |
AW: Fehler vor OnCreate finden
Zitat:
Sieh Dir mal die Comboboxen etc. im Designer genauer an. Es gibt ein paar Dinge, die manchmal nicht in der creation sequence des forms funkionieren, wie z. B den ItemIndex einer Combobox zu setzen. Das hängt damit zusammen, das einige der Operatione eine Window handle erfordern. Die VCL legt das zwar nach Bedarf an (versucht es zumindestens), aber das kann schiefgehen. Was oft auch nicht funktioniert, ist der Versuch, den focus explizit in Code zu setzen, anstatt dafür die Activecontrol-Eigenschaft des Forms zu verwenden. |
AW: Fehler vor OnCreate finden
Relevant scheinen mir diese Teile zu sein:
Zitat:
Sherlock |
AW: Fehler vor OnCreate finden
Im Zweifelsfalle:
Die Fehlermeldung enthält eine Fehleradresse. Programm kompilieren und auf betroffenen Laptop starten. Fehleradresse merken. In der IDE auf den ersten Befehl in der dpr nach dem führenden Begin 'nen Breakpoint setzen. Programm in der IDE mit Debugger starten. Wenn das Programm am Breakpoint stehen bleibt im Menü die Option "Suchen/Laufzeitfehler suchen" wählen. Dort die Fehleradresse eingeben. Die IDE sollte Dich dann zu der Stelle bringen, an der der Fehler aufgetreten ist. Im Umfeld dieser Stelle nach möglichen Fehlerursachen suchen. Alternative: Programm mit ausführlicher MAP-Datei erstellen. Programm auf Laptop starten. Fehlereradresse merken und diese in der MAP-Datei suchen. Wird sie gefunden, so steht vor der Fehleradresse die Nummer der Zeile, in der der Fehler auftritt. Mehr oder weniger weit darüber steht, um welche Quelltextdatei es sich handelt. Dort dann nach möglichen Fehlerursachen suchen. Ansonsten: EurekaLog, madExcept Nutzt Du die JEDIs? Dann nimm dort den TJvDebugHandler, der hilft Dir an Fehlerursachen zu gelangen. |
AW: Fehler vor OnCreate finden
Hallo Zusammen,
ich habe es jetzt mit dem Remote-Debugger versucht. Mit einer "Hello World" Anwendung klappt das wunderbar. Aber wenn ich mein Projekt compiliere, startet das Prgramm nicht auf der Remote-Maschine. Die exe-Datei wird zwar angelegt, aber starten tut sie nicht. Komischer Weise beendet sich auch scheinbar der Debugger. Jedenfalls wird der grüne Button wieder sichbar. Aber wenn ich draufklicke passiert nichts... Wenn ich aber die das Projekt in Delphi schließen möchte, wird gesagt, dass es eine Debugger-Sitzung gibt... Kennt jemand das? Ich mein Projekt zu groß? Die Debugger-EXE ist 70MB groß, die Release-EXE ca. 25MB. Vielen Dank Patrick |
AW: Fehler vor OnCreate finden
Mach doch mal eines nach dem anderen. Du hast einen Call Stack, was sagst Du dazu? Meine Anmerkungen schon gelesen?
Sherlock |
AW: Fehler vor OnCreate finden
Hallo Sherlock,
ich habe Deine Anmerkung gelesen. Aber ich weiß nicht, wie ich sie umsetzen muss.:oops: Ich weiß nicht, wie ich gezielt zu dem Punkt komme. Ich habe Haltepunkte im OnCreate und OnShow des Hauptfensters gesetzt, aber vorher crasht das Programm. Aber nicht auf der Entwicklungsmaschine, deshalb tue ich mich gerade so schwer damit... LG Patrick |
AW: Fehler vor OnCreate finden
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Delphi.Narium,
ich habe jetzt aus dem Bug-Report von MadExcept die Fehler-Adresse ausfindig gemacht (00534460). Dann habe ich die Adresse gesucht. Jetzt stehe ich vor diesem Bildschirm. Bei dieser Ansicht habe ich noch nie verstanden, was ich damit anfangen kann und wie ich von dort aus zu dem entsprechenden Code komme... Ich habe den Bildschirm als Screenshot angehängt. Vielen Dank Patrick |
AW: Fehler vor OnCreate finden
Hallo,
der Fehler steht doch direkt da. Deaktiviertes oder unsichtbares Fenster kann den Fokus nicht erhalten. Ursache1: Du hast im Code ein xxx.SetFocus; Wahrscheinlich im FormCreate. Zu diesem Zeitpunkt existiert aber das (Windows-)Fenster-Handle der Komponente noch nicht. Ursache2: Die xxx bei xxx.SetFocus ist zu dem Zeitpunkt nicht sichtbar Quick&Dirty1: try XXX.SetFocus; except ; end; Quick&Dirty2: ins FormActivate verschieben und trotzdem try except drumrum |
AW: Fehler vor OnCreate finden
Mein Problem ist aber, dass ich nicht weiß was xxx ist und wo es aufgerufen wird. Ich habe OnShow und OnCreate schon komplett auskommentiert, damit der Inhalt garnicht zur Anwendung kommt. Aber das Programm crasht trotzdem. Im ganzen Main-Form gibt es nur einmal SetFocus und das habe ich gerade herausgenommen - ohne Erolg...
Auf der Entwicklungsmaschine und ca. 40 anderen Rechnern läuft es ohne Probleme, sondern nur auf zwei Rechnern, die nicht produktiv genutzt werden. Ich bin leider noch nicht bei der Fehlerbehebung, sondern ich versuche herauszufinden, wo der Fehler entsteht... Hast Du eine Idee, wie ich das anstellen kann? LG Patrick |
AW: Fehler vor OnCreate finden
Hallo,
das war zu schnell. Es geht ja um das TMS TAdvStringGrid, genauer und dein Grid_not_printed. Das hier grätscht rein Vcl.Themes TUxThemeStyle.DoDrawText dann folgt AdvGrid 41726 +667 TAdvStringGrid.WMLButtonUp und der Auslöser ist AdvGrid 26797 +1 TAdvStringGrid.EditCell Das ganze soll beim Erzeugen des Formulars passieren? Sehr verwunderlich. Notlösung wäre das Editieren des Grids im Objektinspektor zu deaktivieren. Bei TAdvStringGrid gibt es ja mehrere Stellen, nicht nur Gridoptions-goEditing, DirectEdit usw.. Bei den beiden Rechnern scheint jemand an den Grafikeinstellungen rumgeschraubt zu haben. Test wäre ein leeres Projekt und dann das Grid_not_printed per Copy&Paste dort drauf. Außerdem würde ich mal bei den Events des Grids nachschauen, ob da "böses" passiert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:21 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