AGB  ·  Datenschutz  ·  Impressum  







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

Fehler vor OnCreate finden

Ein Thema von Ykcim · begonnen am 18. Feb 2019 · letzter Beitrag vom 21. Feb 2019
Antwort Antwort
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#1

AW: Fehler vor OnCreate finden

  Alt 20. Feb 2019, 15:41
Hier der BugReport - etwas gekürzt um doppelte Einträge
Angehängte Dateien
Dateityp: txt bugreport_klein.txt (89,7 KB, 5x aufgerufen)
Patrick
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.555 Beiträge
 
Delphi 7 Professional
 
#2

AW: Fehler vor OnCreate finden

  Alt 20. Feb 2019, 16:16
Such in der MAP-Datei bitte nach :005345D4.

Wenn das nicht da ist, nach :005345 und wenn das nicht da ist nach :0053.

Findest Du irgendwo hinter dem ersten "Line numbers" der MAP-Datei was dazu?

Wenn nein, könnte es sein, dass der konkrete Fehler nicht in dem Teil des Programmes geschieht, für den Du Quelltext besitzt, also z. B. Komponenten, für die Du nur die DCUs hast. (Gibt es sowas oder hast Du für alles auch die Quelltexte?)

Zitat von hoika:
MessageBox = Remote-Debugger für Arme
Ja, aber manchmal extrem hilfreich, wenn man überhauptnicht weiß, wo denn da was klemmt oder der Fehler halt mit dem Debugger nicht zu lokalisieren ist, weil der entweder garnicht bis zu der Stelle kommt oder eben (wie hier) der Fehler auf der Entwicklungsmaschine nicht zu reproduzieren ist.

@Ykcim

Schlimmstenfalls:

Pflastere jede, wirklich jede Prozedure am Anfang und am Ende mit ShowMessage ein:
Delphi-Quellcode:
// irgendwo am Anfang:
{$DEFINE MsgDebug}


Function TForm1.NameDerFunktion : keineAhnung;
begin
{$IFDEF MsgDebug}ShowMessage('Start NameDerFunktion');{$ENDIF}
  
... der eigentliche Funktionsinhalt.

{$IFDEF MsgDebug}ShowMessage('Ende NameDerFunktion');{$ENDIF}
end;
Durch den Kompilerschalter muss Du dann nicht alles wieder entfernen, bevor die Software in Betrieb geht. Den Kompilerschalter kannst Du dann von {$DEFINE MsgDebug} nach { $DEFINE MsgDebug} ändern und die Meldungen sind mit dem nächsten Kompilieren wieder weg.

Statt ShowMessage ... kannst Du auch 'ne Loggingfunktion nehmen, die diese Meldungen in 'ne Datei schreibt (sofern Du sowas gerade zur Verfügung hast).

Und nein, wirklich schön ist dieser Lösungsvorschlag nicht, aber als Notnagel kann man's schonmal durchgehen lassen
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Fehler vor OnCreate finden

  Alt 20. Feb 2019, 16:29
Hallo Delphi.Narium,
warum den Umweg über die Map-Datei?
Auf Seite 1 ist der komplette Call-Stack.

Der Fehler tritt intern im TAdvStringGrid auf,
weil der Inplace-Edit anzuzeigt wird.
Der Fehler sagt ja, dass das SetFocus des Inplace-Editors fehlschlägt.
Entweder ist das Grid oder der Frame nicht sichtbar,
oder siehe StrLCopy es wird Speicher bei Theming überschrieben.

Da fallen mir noch 2 Sachen ein
1. FastMM4 wegen dem möglichen Speicherüberschreiben
2. in den Grafikoptionen mal alle visuellen Effekte außer Kantenglättung deaktivieren
(rechte Maustaste auf Computer/dieser PC -> Erweiterte Systemeinstellungen -> Leistung)
Heiko

Geändert von hoika (20. Feb 2019 um 16:31 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Fehler vor OnCreate finden

  Alt 20. Feb 2019, 16:36
Hallo,
zu spät dein Post bemerkt.

Mir sind in der Dpr 2 Sachen aufgefallen
Application.CreateForm(TForm_LogIn, Form_LogIn); wird erzeugt, aber wohl nicht mehr gebraucht?

Application.Run;
Main.WindowState:=wsMaximized;
Das hat keine Wirkung, weil Delphi in der Run-Methode bleibt,
bis das Hauptprogramm (Main) beendet wird.


Aber jetzt zu deinem Post.
Was passiert, wenn du die DoLogin-Methode mal ausklammerst?
Vielleicht macht dein Login-Fenster ja was "kaputt".
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.927 Beiträge
 
Delphi 12 Athens
 
#5

AW: Fehler vor OnCreate finden

  Alt 21. Feb 2019, 08:12
Hier der BugReport - etwas gekürzt um doppelte Einträge
Ach jetzt sehe ich den Fehler...
Zitat:
exception class : EAccessViolation
exception message : Zugriffsverletzung bei Adresse 005345D4 in Modul 'NedCom.exe'. Lesen von Adresse 00000260.

main thread ($1688):
005345d4 +000 NedCom.exe Vcl.Controls TWinControl.HandleAllocated
009cfc99 +069 NedCom.exe AdvCombo 1292 +7 TAdvCustomCombo.UpdateLabel
009d07cc +0f4 NedCom.exe AdvCombo 1534 +30 TAdvCustomCombo.SetBounds
0053ab74 +0ac NedCom.exe Vcl.Controls TMargins.SetControlBounds
0052ec41 +301 NedCom.exe Vcl.Controls TWinControl.ArrangeControl
0052ef3e +03a NedCom.exe Vcl.Controls DoPosition
0052f0bc +170 NedCom.exe Vcl.Controls DoAlign
0052f560 +0f0 NedCom.exe Vcl.Controls TWinControl.AlignControls
008dfad4 +018 NedCom.exe AdvToolBar 13168 +1 TAdvCustomToolBar.AlignControls
0052f6af +063 NedCom.exe Vcl.Controls TWinControl.AlignControl
0052fbbf +093 NedCom.exe Vcl.Controls TWinControl.RemoveControl
0052b007 +02f NedCom.exe Vcl.Controls TControl.SetParent
008f77a5 +471 NedCom.exe AdvToolBar 23534 +73 TAdvCustomToolBar.UpdateCompactWindow
008f85b2 +39e NedCom.exe AdvToolBar 23867 +67 TAdvCustomToolBar.SetCompact
0092e325 +405 NedCom.exe AdvToolBar 48323 +116 TAdvPage.UpdateAllToolBars
0092e32d +40d NedCom.exe AdvToolBar 48324 +117 TAdvPage.UpdateAllToolBars
0092bde0 +0fc NedCom.exe AdvToolBar 47353 +27 TAdvPage.Loaded
004824c4 +024 NedCom.exe System.Classes NotifyGlobalLoading
00482628 +070 NedCom.exe System.Classes InitInheritedComponent
005f716e +0c6 NedCom.exe Vcl.Forms TCustomForm.Create
0093b3cb +093 NedCom.exe AdvToolBar 55558 +11 TAdvToolBarForm.Create
0052a358 +030 NedCom.exe Vcl.Controls TControl.Notification
00601c76 +076 NedCom.exe Vcl.Forms TApplication.CreateForm
01432ebe +042 NedCom.exe NedCom 87 +5 initialization
77280177 +017 KERNEL32.DLL BaseThreadInitThunk
Man sieht hier, dass der Fehler beim Laden der Komponenten passiert. Da sollte der Support von TMS weiterhelfen können.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#6

AW: Fehler vor OnCreate finden

  Alt 21. Feb 2019, 14:03
Hallo Zusammen,
Ich habe die Ursache für mein Problem gefunden!
Ich hatte am Anfang mal eine Fehlermeldung, die irgendetwas mit Comboboxen zu tun hatte. Aber ich fand den Fehler dabei nicht heraus und habe den Weg nicht weiter verfolgt.
Zitat:
009cfc99 +069 NedCom.exe AdvCombo 1292 +7 TAdvCustomCombo.UpdateLabel
009d07cc +0f4 NedCom.exe AdvCombo 1534 +30 TAdvCustomCombo.SetBounds
Heute habe ich angefangen, Frame für Frame aus meinem Projekt heraus zu löschen. Das geht, weil die Frames untereinander keine Verweise haben. Allerdings hätte das sehr sehr lange gedauert.
Dann habe ich einfach mal zum Testen alle TDBLUComboauf meinem Ribbon Menü vom Hauptfenster gelöscht. Und siehe da auf einmal funktionierte es.

Ich habe in meinem Programm ein Ribbon Menü mit mehreren TabSheets. Auf diesen TabSheets liegt unter anderem eine TDBLUCombo, die sich Daten aus der Datenbank zur Auswahl holt.
Zur Erklärung, die Benutzer können dort andere Benutzer ihrer Abteilung auswählen und sehen dann deren Daten und arbeiten somit im Vertretungsfall in der anderen Datenumgebung , aber unter dem eigenen Login...
Von diesen TDBLUCombogibt es ca. 10 Stück, eines auf jedem TabSheet des Ribbon-Menüs.

Weil da etwas von UpdateLabel drinstand, habe ich alle TDBLUCombo wieder reingenommen und habe die Labels weggelassen. Und wieder funktionierte es.
Dann habe ich Schritt für Schritt bei jedem TDBLUCombo das Label wieder hinzugefügt. Bei 7 gab es keine Probleme aber bei 3 TDBLUCombo kam dann wieder der Fehler.
Rausschmeißen, neu einbinden oder eine der funktionierenden kopieren brachte leider keinen Erfolg.

Zur Klarstellung:
Die Gleiche Komponente, die gleiche Datenbasis, das gleiche Ribbon-Menue, den gleichen Label-Text, auf unterschiedlichen Tabs des Ribbons...

Keine Ahnung, was den Fehler auslöst. Ich habe jetzt bei diesen TDBLUCombo die Labels durch TLabels ersetzt und es funktioniert wunderbar.





An dieser Stelle möchte ich mich herzlich bedanken - diese Forum ist spitze, weil Ihr Euch echt Zeit und Mühe gebt, "Verzweifelten" zu helfen!
Vielen Dank dafür!!!

Patrick
Patrick
  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 10:58 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