Urplötzlich konnte ich mein Projekt nicht mehr laden. Jede Menge völlig wirre und nutzlose Meldungen, dazwischen ein paar Access Violations. Allen gemeinsam war, dass das lpm file nicht mehr mit dem TDaemon Objekt in meinem Programm zusammenpassen wollte. Alle Properties wurden als irgendwie ungültig angemäkelt, und dann schmiert Lazarus sowieso komplett ab. Versuche, Lazarus neu zu bauen, endeten im völligen Desaster.
Lazarus habe ich nur durch "zurück auf los" wieder in den Griff bekommen. Ich habe %Appdata%\Local\Lazarus gelöscht, danach alle Packages wieder neu kompiliert und installiert, und jetzt läuft es wieder. An meinem Programm habe ich wohlgemerkt keinen Strich verändert.
Im Kern des Absturzes steht irgendwie das lazDaemon Package, mehr weiß ich im Moment noch nicht.
Nach dem Neuinstallieren: beim Testen des TDaemon Object Inspectors, der jetzt plötzlioch alle Properties aus der lpm Datei wieder kennen mag, fällt auf: ich kann die Properties "onCreate" und "onDestroy" nicht setzen. Ursache scheint zu sein, dass weder das darunterliegende TDaemon Objekt, noch einer seiner Vorgänger, OnCreate und OnDestroy published. Das war allerdings schon vor dem Absturz so, ich habs kopfschüttelnd zur Kenntnis genommen, jetzt da ich mich sowieso mit dem Paket herumschlage dachte ich, ich geh der Sache vielleicht auch noch schnell auf den Grund.
Hier der Object Inspector und die Source von TDaemon aus dem aktuellen LazDaemon package (0.9.9)
Die Fehlermeldung im Messages Fenster:
Code: Alles auswählen
daemonunit.pas(8,10) Error: identifier not found: OnCreate
Ich habe das lpk neu übersetzt und neu in der IDE installiert, einen clean Build angestoßen, das ändert alles nichts. Eigentlich ist so ein Verhalten doch technisch unmöglich.
Wer kann mich erhellen, wieso es dennoch möglich ist, dass Object inspector und Published Sektion auseinandergedriftet sind?
Armin.