AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TeeChartPro ableiten > Probleme im Delphi

Ein Thema von himitsu · begonnen am 1. Jun 2012
Antwort Antwort
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
26.443 Beiträge
 
Delphi XE3 Professional
 
#1

TeeChartPro ableiten > Probleme im Delphi

  Alt 1. Jun 2012, 10:08
Tachchen.

Also, ich versuche grade das TChart abzuleiten und dort über eigene Property gewisse Funktionen und Tools zur einfachereren Nutzung anzubieten.
(da ist ja soooo viel Zeugs drin, das braucht keiner und das was man braucht, findet man nicht)
Da gibt es z.B. ein Boolean-Property für ein bestimmtes "Tool", welche dieses erstellt/freigibt und dabei natürlich auch einrichtet (Property setzt) usw.


Nun gibt es im Delphi aber abundzu mal ein Problem, wo sich dann Formulare nicht mehr öffnen lassen, aber gerade hab ich eher die andere Richtung.
Formular ließ sich öffnen, aber wenn man Unit+Formular speichern will, dann knallt es und es wird nichts oder nur teilweise gespeichert. Manchmal kann man nichtmal mehr die Datei schließen, womit sich Delphi auch nicht mehr beenden läßt.


So, also hab ich grade mal versucht die IDE zu debuggen und beim Speichern kommt folgendes raus:
Delphi noch ein 2. Mal gestartet, in Beiden unsere Quellcodes (Projektgruppe) geladen (einmal zum arbeiten und das Andere in der Hoffnung der Quellcode würde beim Debuggen unseres Codes hilfreich sein)
und hab mich dann mit dem Delphi verbunden, welches grade die Speicherprobleme hat.
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt bds.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 4225FF44 in Modul 'Tee915.bpl'. Lesen von Adresse FB90699B' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Bei Anhalten zeigt Delphi dann diesen Stacktrace und landet an undefinierbarer Stelle in der CPU-Ansicht.
Code:
:30317e63 ; C:\Program Files (x86)\Entwicklung Software\AQTime 7\Bin\aqReporter.dll
:516b4965 ; c:\program files (x86)\embarcadero\rad studio\8.0\bin\exceptiondiag150.bpl
:5003b058 NotifyNonDelphiException + $1C
:7780b42b ; ntdll.dll
:777c0133 ntdll.KiUserExceptionDispatcher + 0xf
:500a8089 IsDefaultPropertyValue + $109
:500a8a90 TWriter.WriteProperty + $88
:500a7942 TWriter.WriteProperties + $8E
:500a7030 TWriter.WriteCollection + $64
:500a8296 WriteCollectionProp + $5A
:500a87ff WriteObjectProp + $1DB
:500a8b31 TWriter.WriteProperty + $129
:500a7942 TWriter.WriteProperties + $8E
:500a73d8 TWriter.WriteData + $1C8
:500ae1ba TComponent.WriteState + $6
:50285e86 TWinControl.GetChildren + $3A
:500a74e9 TWriter.WriteData + $2D9
:500ae1ba TComponent.WriteState + $6
:157ed848 TcxPageControl.GetChildren + $30
:500a74e9 TWriter.WriteData + $2D9
:500ae1ba TComponent.WriteState + $6
:50285e86 TWinControl.GetChildren + $3A
:5034e158 TCustomFrame.GetChildren + $1C
:500a74e9 TWriter.WriteData + $2D9
:500ae1ba TComponent.WriteState + $6
:500a75f2 TWriter.WriteDescendent + $22
:2107dd85 TComponentRoot.WriteRootStream + $3D
:0603a1ae ; C:\Users\Public\Documents\RAD Studio\8.0\Experts\IDEFixPack.dll
:2107af8e TComponentRoot.GetRootStream + $A6
:2107fe0f TComponentRoot.Save + $1F
:21b8fb56 delphicoreide150.@Delphimodule@TPascalCodeMgrModHandler@SaveFile$qqrv + 0x36
:208af48b coreide150.@Sourcemodule@TCodeISourceModule@SaveFile$qqrv + 0x67
:208acb33 coreide150.@Sourcemodule@TSourceModule@SaveFile$qqrv + 0x73
:20a7475d ; C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin\coreide150.bpl
:5013a3f8 RawInvoke + $40
:5013a75f Invoke + $1B7
:50133f84 TRttiInstanceMethodEx.DispatchInvoke + $56C
:5013abc3 TRttiMethod.Invoke + $4B
:0049baed ; C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin\bds.exe
:20a743c9 coreide150.@Docmodul@TDocModule@Save$qqroo + 0xed
:208adc54 ; C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin\coreide150.bpl
:20a7939e ; C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin\coreide150.bpl
:0041d716 ; C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin\bds.exe
:5027db93 TControl.Perform + $27
:50282161 TWinControl.IsControlMouseMsg + $B1
:5032381d TToolBar.WndProc + $249
:50281ed3 TWinControl.MainWndProc + $2F
:500afa66 StdWndProc + $16
:759962fa ; C:\Windows\SysWOW64\user32.dll
:75996d3a user32.GetThreadDesktop + 0xd7
:759977c4 ; C:\Windows\SysWOW64\user32.dll
:7599788a user32.DispatchMessageW + 0xf
Wo um Himmels Willen kommt hier eigentlich wieder dieses besch* AQTime her?
Das ist doch schließlich nicht aktiv.

Unpraktisch ist auch, daß scheinbar keiner unserer Codes/Units beteiligt ist. (ich kann jedenfalls nichts in der Liste finden)

Dann wieter mit F9.
Zitat:
---------------------------
Fehler
---------------------------
Zugriffsverletzung bei Adresse 4225FF44 in Modul 'Tee915.bpl'. Lesen von Adresse FB90699B.
---------------------------
OK Details >>
---------------------------
Deteils zeigt Folgendes:
Sieht irgendwie etwas Anders aus, als das was Delphi vorhin noch aufgelistet hat.
Zumindestens tauch nun endlich mal das TeeChart auf, wo ich den Fehler vermute, weil nur an dieser Komponente (ihrer Ableitung) grade gearbeitet wird.
Code:
[4225FF44]{Tee915.bpl } Teengine.TSeriesGroup.GetActive + $24
[500899C1]{rtl150.bpl } TypInfo.GetOrdProp (Line 1717, "TypInfo.pas" + 27) + $0
[500A79A4]{rtl150.bpl } Classes.IsDefaultOrdProp (Line 9081, "Classes.pas" + 1) + $C
[500A8084]{rtl150.bpl } Classes.IsDefaultPropertyValue (Line 9276, "Classes.pas" + 21) + $1
[500A8A8B]{rtl150.bpl } Classes.TWriter.WriteProperty (Line 9524, "Classes.pas" + 10) + $1B
[500A793D]{rtl150.bpl } Classes.TWriter.WriteProperties (Line 9050, "Classes.pas" + 13) + $8
[500A702B]{rtl150.bpl } Classes.TWriter.WriteCollection (Line 8795, "Classes.pas" + 9) + $E
[500A8291]{rtl150.bpl } Classes.WriteCollectionProp (Line 9338, "Classes.pas" + 5) + $8
[500A87FA]{rtl150.bpl } Classes.WriteObjectProp (Line 9462, "Classes.pas" + 38) + $7
[500A8B2C]{rtl150.bpl } Classes.TWriter.WriteProperty (Line 9536, "Classes.pas" + 22) + $1
[500A793D]{rtl150.bpl } Classes.TWriter.WriteProperties (Line 9050, "Classes.pas" + 13) + $8
[500A73D3]{rtl150.bpl } Classes.TWriter.WriteData (Line 8889, "Classes.pas" + 30) + $6
[500AE1B7]{rtl150.bpl } Classes.TComponent.WriteState (Line 12473, "Classes.pas" + 0) + $3
[500A71A3]{rtl150.bpl } Classes.TWriter.WriteComponent (Line 8841, "Classes.pas" + 18) + $8
[50285E83]{vcl150.bpl } Controls.TWinControl.GetChildren (Line 12212, "Controls.pas" + 4) + $D
[500A74E4]{rtl150.bpl } Classes.TWriter.WriteData (Line 8911, "Classes.pas" + 52) + $16
[500AE1B7]{rtl150.bpl } Classes.TComponent.WriteState (Line 12473, "Classes.pas" + 0) + $3
[500A71A3]{rtl150.bpl } Classes.TWriter.WriteComponent (Line 8841, "Classes.pas" + 18) + $8
[157ED845]{cxPageControlD15.bpl} Cxpc.TcxPageControl.GetChildren + $2D
[500A74E4]{rtl150.bpl } Classes.TWriter.WriteData (Line 8911, "Classes.pas" + 52) + $16
[500AE1B7]{rtl150.bpl } Classes.TComponent.WriteState (Line 12473, "Classes.pas" + 0) + $3
[500A71A3]{rtl150.bpl } Classes.TWriter.WriteComponent (Line 8841, "Classes.pas" + 18) + $8
[50285E83]{vcl150.bpl } Controls.TWinControl.GetChildren (Line 12212, "Controls.pas" + 4) + $D
[5034E153]{vcl150.bpl } Forms.TCustomFrame.GetChildren (Line 3077, "Forms.pas" + 1) + $A
[5003A480]{rtl150.bpl } System.@CallDynaInst (Line 11595, "System.pas" + 3) + $0
[500A74E4]{rtl150.bpl } Classes.TWriter.WriteData (Line 8911, "Classes.pas" + 52) + $16
[500AE1B7]{rtl150.bpl } Classes.TComponent.WriteState (Line 12473, "Classes.pas" + 0) + $3
[500A71A3]{rtl150.bpl } Classes.TWriter.WriteComponent (Line 8841, "Classes.pas" + 18) + $8
[500A75ED]{rtl150.bpl } Classes.TWriter.WriteDescendent (Line 8935, "Classes.pas" + 6) + $4
[2107DCB3]{designide150.bpl} ComponentDesigner.WriteStream (Line 3916, "ComponentDesigner.pas" + 11) + $7
[2107DD80]{designide150.bpl} ComponentDesigner.TComponentRoot.WriteRootStream (Line 3939, "ComponentDesigner.pas" + 5) + $B
(000091A8){IDEFixPack.dll} [0603A1A8]
[2107AF89]{designide150.bpl} ComponentDesigner.TComponentRoot.GetRootStream (Line 2763, "ComponentDesigner.pas" + 14) + $5
[2107FE0A]{designide150.bpl} ComponentDesigner.TComponentRoot.Save (Line 4734, "ComponentDesigner.pas" + 1) + $2
[21B8FB53]{delphicoreide150.bpl} DelphiModule.TPascalCodeMgrModHandler.SaveFile (Line 1474, "DelphiModule.pas" + 2) + $8
[208AF488]{coreide150.bpl} SourceModule.TCodeISourceModule.SaveFile (Line 1508, "SourceModule.pas" + 2) + $26
[208ACB30]{coreide150.bpl} SourceModule.TSourceModule.SaveFile (Line 653, "SourceModule.pas" + 3) + $23
[20A7475A]{coreide150.bpl} DocModul.TDocModule.TheMalteseFalcon (Line 1422, "DocModul.pas" + 60) + $6
[5013A3F5]{rtl150.bpl } Rtti.RawInvoke (Line 5538, "Rtti.pas" + 46) + $0
[5013A75A]{rtl150.bpl } Rtti.Invoke (Line 5729, "Rtti.pas" + 38) + $6
[501335D9]{rtl150.bpl } Rtti.TRttiInstanceMethodClassic.GetCallingConvention (Line 4103, "Rtti.pas" + 1) + $2
[50133F7F]{rtl150.bpl } Rtti.TRttiInstanceMethodEx.DispatchInvoke (Line 4408, "Rtti.pas" + 130) + $17
[5013ABC0]{rtl150.bpl } Rtti.TRttiMethod.Invoke (Line 5859, "Rtti.pas" + 1) + $11
[20A743C6]{coreide150.bpl} DocModul.TDocModule.Save (Line 1346, "DocModul.pas" + 3) + $23
[208ADC4F]{coreide150.bpl} SourceModule.TSourceModule.Save (Line 1002, "SourceModule.pas" + 13) + $B
[50040A33]{rtl150.bpl } System.TInterfacedObject._Release (Line 28243, "System.pas" + 1) + $3
[20A79398]{coreide150.bpl} DocModul.SaveModifiedModules (Line 3554, "DocModul.pas" + 57) + $7
[0041D711]{bds.exe    } Sanctuary.MD5.Transform (Line 282, "Sanctuary.MD5.pas" + 11) + $F
[500AED6F]{rtl150.bpl } Classes.TBasicAction.Execute (Line 12988, "Classes.pas" + 3) + $7
[5026AA15]{vcl150.bpl } ActnList.TContainedAction.Execute (Line 448, "ActnList.pas" + 8) + $2C
[5026B7F0]{vcl150.bpl } ActnList.TCustomAction.Execute (Line 1094, "ActnList.pas" + 7) + $8
[500AEC33]{rtl150.bpl } Classes.TBasicActionLink.Execute (Line 12917, "Classes.pas" + 2) + $7
[5027E4C0]{vcl150.bpl } Controls.TControl.Click (Line 7188, "Controls.pas" + 7) + $7
[5031ED94]{vcl150.bpl } ComCtrls.TToolButton.Click (Line 20639, "ComCtrls.pas" + 0) + $0
[5027E97D]{vcl150.bpl } Controls.TControl.WMLButtonUp (Line 7329, "Controls.pas" + 7) + $6
[5027DF6C]{vcl150.bpl } Controls.TControl.WndProc (Line 7074, "Controls.pas" + 91) + $6
[5027DB90]{vcl150.bpl } Controls.TControl.Perform (Line 6852, "Controls.pas" + 10) + $8
[50281FC8]{vcl150.bpl } Controls.GetControlAtPos (Line 9575, "Controls.pas" + 4) + $76
[50282092]{vcl150.bpl } Controls.TWinControl.ControlAtPos (Line 9598, "Controls.pas" + 13) + $E
[5027DB90]{vcl150.bpl } Controls.TControl.Perform (Line 6852, "Controls.pas" + 10) + $8
[5028215C]{vcl150.bpl } Controls.TWinControl.IsControlMouseMsg (Line 9622, "Controls.pas" + 15) + $2A
[502826AC]{vcl150.bpl } Controls.TWinControl.WndProc (Line 9782, "Controls.pas" + 95) + $6
[50320E49]{vcl150.bpl } ComCtrls.TToolBar.UpdateButtonState (Line 21901, "ComCtrls.pas" + 11) + $27
[50320E8A]{vcl150.bpl } ComCtrls.TToolBar.UpdateButtonStates (Line 21912, "ComCtrls.pas" + 3) + $4
[50323818]{vcl150.bpl } ComCtrls.TToolBar.WndProc (Line 23486, "ComCtrls.pas" + 104) + $6
[157039CD]{cxLibraryD15.bpl} Cxcontainer.TcxCustomInnerListBox.CNDrawItem + $695
[50281ED0]{vcl150.bpl } Controls.TWinControl.MainWndProc (Line 9552, "Controls.pas" + 3) + $6
[500AFA64]{rtl150.bpl } Classes.StdWndProc (Line 13491, "Classes.pas" + 8) + $0
[50359C5D]{vcl150.bpl } Forms.TApplication.StopHintTimer (Line 10491, "Forms.pas" + 3) + $6
[50358AF7]{vcl150.bpl } Forms.TApplication.ProcessMessage (Line 9760, "Forms.pas" + 23) + $1
[50358B3A]{vcl150.bpl } Forms.TApplication.HandleMessage (Line 9790, "Forms.pas" + 1) + $4
[50358E65]{vcl150.bpl } Forms.TApplication.Run (Line 9927, "Forms.pas" + 26) + $3
So, wie bekomme ich nun raus, wo und ob wirklich ein Fehler besteht?
Hab manchmal den Verdacht, daß einige Fehler irgendwie am AQTime liegen, welches sich überall einnistet, denn das Programm selber läuft diesbezüglich scheinbar problemlos ... nur in der IDE gibt's Probleme
und wenn man nicht speichern kann, ist das eher hinderlich.
Den Quellcode kann ich ja noch kopieren und manuell in die PAS verfrachten, aber an die DFM komm ich nicht ran, weder über Kopieren vom Formeditor, noch über Alt+F12, denn dafür müßte ja ebenfalls die DFM "gespeichert" werden, um sie anzuzeigen oder zu kopieren.


Debuggen selber bringt auch nichts, da ich dort nur via CPU-Ansicht im IDE-Code rumschwirre und bis jetzt noch nichts "brauchbares" fand.



[edit]
Hab inzwischen in meiner Ableitung alles in den Settern und in irgendwelchen Methoden auskommentiert
und dennoch knallt es beim Speichern.
Ich geht jetzt auch noch die paar Getter durch, obwohl sie (glaub ich) eigentlich nichts Schlimmes machen sollten.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2013

Geändert von himitsu ( 1. Jun 2012 um 11:08 Uhr)
  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 08:57 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