![]() |
Problem mit TJvLogFile
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Morgen!
In meinem Projekt nutze ich von den JEDIs die JvLogFile. Allerdings wirft die mir sporadisch einen Fehler beim Programmstart (Siehe Anhang). Im FormCreate lege ich den Pfad für das Logfile fest und aktiviere die Komponente.
Delphi-Quellcode:
Der Fehler passiert an dieser Stelle beim Speichern.
procedure TMainform.FormCreate(Sender: TObject);
var path: Array[0..MAX_PATH] of Char; begin SHGetFolderPath(0, CSIDL_COMMON_APPDATA, 1, 0, @path[0]); commonAppDataPath := path+'\Run Automation\BDE\'; JvLog.FileName := commonAppDataPath+'log.txt'; JvLog.Active := true; JvLog.AutoSave := true; JvLog.Add('SYSTEM', 'Programm gestartet'); ... end;
Delphi-Quellcode:
Die Datei ist allerdings nirgends sonst geöffnet. Kennt das Problem jemand? Oder besser: Kennt jemand eine Lösung?
procedure TJvLogFile.SaveToFile(FileName: TFileName);
var Stream: TFileStream; begin Stream := TFileStream.Create(FileName, fmCreate or fmShareExclusive); // <-- Hier kracht es! try SaveToStream(Stream); finally Stream.Free; end; end; Gruß :dp: |
Re: Problem mit TJvLogFile
Wir die Log-Datei denn zwischendurch benutzt und nicht wieder freigegeben bzw. wird sie vielleicht beim Starten nicht richtig freigegeben?
|
Re: Problem mit TJvLogFile
Die Logdatei wird nur durch die Komponente selbst benutzt. Ich gehe davon aus, dass diese die Datei freigibt. Die Komponente ist zur Designtime erstellt worden. Dann sollte die eigentlich beim Beenden (Destroy) die Datei freigeben oder nicht?
Werde mal im JEDI-Code suchen... Mich wundert es halt, dass der Fehler nicht regelmäßig auftritt. |
Re: Problem mit TJvLogFile
Der Fehler kommt beim Programmstart? Ich könnte mir das so erklären:
1.) Du aktivierst LogFile beim Start und greifst drauf zu 2.) da AutoSave an ist könnte ich mir vorstellen dass dann SaveToFile aktiv ist wenn du beim Start die Datei noch bgeöffnet hast 3.) nun will die Speicher-Prozedur schreiben --> wenn die Datei allerdings noch offen ist geht das nat. nicht, es knallt. PS: nutzt du .Destroy? Dann lieber .Free! |
Re: Problem mit TJvLogFile
Ich muss mir das mal genauer anschauen...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 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