Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi unit initialization wird nicht aufgerufen (https://www.delphipraxis.net/152908-unit-initialization-wird-nicht-aufgerufen.html)

Gruber_Hans_12345 12. Jul 2010 13:37

unit initialization wird nicht aufgerufen
 
Ich habe ien Problem, ich verwende WPEditor 6.0, da ist eine Datei WPRTEDefs.pas dabei
Ich musste in der Datei was umbauen, und hab nun neu kompiliert.
Nun siehts so aus als ob der initializaiton teil gar nicht mehr aufgerufen wird.

Ich kann auch in der gesamten Unit keine Breakpoints mehr setzen!

Zum testen habe ich in einer kleienn funktion (die wandelt einen Float in einen Text um) den Wert mit 2 addiert, und siehe da, es wird DOCH diese funktion aufgerufen, aber es werden keinerlei Breakpoints als auch die initaliszation section nicht ausgeführt.

Ich habe diese unit auch schon zum Projekt selbst hinzugeüfgt, alle dcu gelöscht ....

Ich weiss im moment nicht weiter ... und das problem ist, die initialzation section ist sehr wichtig, da im moment leider gar nix mehr funit .... :(

kann mir wer noch nen tipp geben, wo ich da was drehen könnte?

ChrisE 12. Jul 2010 13:48

AW: unit initialization wird nicht aufgerufen
 
Hallo,

soweit ich das raus lesen konnte verwendest du ja diese Komponente -> http://www.wpcubed.com/products/wptools/index.htm die haben einen Klasse Support mit dem Herrn Ziersch :-)
Vielleicht kann dir der ja sagen, wie du Dein Problem lösen kannst ohne das Package zu ändern. Denn die sorgen auch oft dafür, dass es Updates gibt. Und dann müsstest du ja immer die Änderungen mit ziehen und testen.

Das löst zwar Dein Problem nicht direkt, aber vielleicht doch indirekt.

Zur direkten Lösung kann ich nur sagen, dass es eigentlich immer nach dem Schema funktionieren sollte. Unit ändern, Package neu Kompilieren und installieren. Mehr mache ich glaube ich auch nicht :gruebel:

Greez, Chris

[Edit]
WPRTEDefs.pas kann ich auch nicht debuggen :-). Ich nutzte noch WPTools 5. Dort kann ich aber in der WPINC.INC folgende zeilen ändern:
Delphi-Quellcode:
// Add Debug Information -------------------------------------------------------
{$IFNDEF NODEBUG}
   {.$DEFINE WPDEBUG}
{$ENDIF}
Punkt entfernen und Package nochmals kompilieren. Dann sollte es gehen :-)

blackfin 12. Jul 2010 13:56

AW: unit initialization wird nicht aufgerufen
 
Hmm....manchmal hat bei mir schon ein "Projekt => Unit Puffer löschen" und anschliessendes Neu-Kompilieren und Neu-Installieren des Packages Wunder gewirkt....vielleicht probier das mal aus?

Gruber_Hans_12345 12. Jul 2010 14:02

AW: unit initialization wird nicht aufgerufen
 
danke mal für die lösungen

ich hab inzwischen schon bisschen was rausgefunden ...

es sind zwei probleme gewesen, eins davon habe ich "gelöst"

Das mit den breakpoints, war das mit nem Compilerschalter die Debug infos in dieser unit abgedraht wurden, nun kann ich breakpoints setzen.

Das zweite problem, das ich noch nicht lösen konnte, ist, das die "initializaiton" section der einen unit vor dem der anderen kommt

Delphi-Quellcode:
unit WPCTRMemo;
...
uses WPRTEDefs;
...
initialization
// sollte ja eigentlich erst NACH der initialization der unit WPRTEDefs klommen oder
das initialization der unit WPCTRMemo kommt nun VOR der initialization der unit WPRTEDefs ... und das macht mir hier nun probleme ....

ChrisE 12. Jul 2010 14:11

AW: unit initialization wird nicht aufgerufen
 
Hallo,

wie du in der Unit und auch vielen anderen sehen kannst, wird die WPRTEDefs immer sehr früh eingebunden. Wann welche aber schlussendlich "Initalisiert" wird kann man meines wissens nach nicht beeinflussen. Das dürfte der Compiler selber entscheiden.

Ein Beispiel ist z.B. die WPTools_Reg.pas. Diese Unit ist die Einzige die Explizit im Package enthalten ist. Diese zieht dann alle anderen impliziet nach. Hier wird die WPRTEDefs in der uses fast als erstes Verwendet. Dennoch scheint der Fehler auf zu treten.

Hast du mal probiert die Unit ebenso Explizit in das Package mit auf zu nehmen. Und das noch vor der WPTools_Reg. Vielleicht bringt es das ja. Aber ich kenne die Nebeneffekte nicht. Also bitte vorsicht :-)

Greez, Chris

Gruber_Hans_12345 12. Jul 2010 14:28

AW: unit initialization wird nicht aufgerufen
 
hab ich schon probiert ... ist ziemlich blöd im moment.

weiss nicht, wie ich es schaffe, das der diese eine unit wieder so wie vorher vor all den anderen macht ....

ChrisE 12. Jul 2010 14:30

AW: unit initialization wird nicht aufgerufen
 
Hallo,

darf ich fragen was genau du machen willst? Vielleicht gibt es ja doch noch einen anderen Weg?

Greez, Chris

Gruber_Hans_12345 12. Jul 2010 14:40

AW: unit initialization wird nicht aufgerufen
 
Also im Moment wieder alles so reparieren, das wieder alles funkt ;)
Ich habe nun die sachen, so umgebaut, das er statt der variable zu verwenden direkt einfach die funktion verwendet .... nun funkts wieder so halbwegs, aber schön wer halt, wenn man es wieder so hinbrächte, das die unit order richtig ist ....


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 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