Dieser Code zeigt eine Möglichkeit, viel Dinge zu speichern, die in Ihrer Anwendung in einer Protokolldatei vor sich geht.
Hier sind zwei Dateien vorhanden, die Projektdatei und eine Einheit, die die Arbeit...
{Unit1.pas}
Einheit Unit1;
Schnittstelle
verwendet
{$DEFINE DEBUG}
ULog {$IFDEF DEBUG}, {$ENDIF}
Windows, Nachrichten, SysUtils, Klassen, Graphics, Steuerelemente, Formulare, Dialoge,
StdCtrls;
Typ
TForm1 = class(TForm)
Button1: TButton;
Prozedur Button1Click(Sender: TObject);
Private
{Private Deklarationen}
öffentliche
{Public Deklarationen}
Ende;
var
Form1: TForm1;
Umsetzung
{$R *. DFM}
Prozedur TForm1.Button1Click(Sender: TObject);
var
Bar: Integer;
beginnen
Bar: = 100;
{$IFDEF DEBUG}
Protokoll (Format ('Button1.Click; Bar = % d',[Bar]));
{$ENDIF}
Ende;
Ende.
//--------------------------------------------------------------------
{uLog.pas}
uLog Einheit;
Schnittstelle
Verfahren Log (S: String);
Umsetzung
verwendet
Windows, SysUtils;
var
LogFile: TextFile;
LogCriticalSection: TRtlCriticalSection;
Verfahren Log (S: String);
var
SystemTime: TSystemTime;
FileTime: TFileTime;
beginnen
GetSystemTime(SystemTime);
SystemTimeToFileTime (SystemTime, FileTime);
EnterCriticalSection(LogCriticalSection);
WriteLn (LogFile, Format ('%s' %.8x%.8x %s',
[FormatDateTime ('Yy.mm.dd SS', jetzt),
FileTime.dwHighDateTime, FileTime.dwLowDateTime, S]));
LeaveCriticalSection(LogCriticalSection);
Ende;
beim Start des Verfahrens;
var
Dateiname: String;
beginnen
InitializeCriticalSection(LogCriticalSection);
FileName: = Format ('Log File für %s auf % s.txt',
[ParamStr(0), DateTimeToStr(Now)]);
zwar Pos (': ', Dateiname) > 0 tun Dateiname [Pos (': ', Dateiname)]: = '.';
zwar Pos ('/' FileName) > 0 keine Dateiname [Pos ('/' FileName)]: = '-';
zwar Pos ('\ ', Dateiname) > 0 tun Dateiname [Pos ('\', FileName)]: = '.';
AssignFile (LogFile, FileName);
Rewrite(Logfile);
Ende;
Herunterfahren des Verfahrens;
beginnen
CloseFile(LogFile);
DeleteCriticalSection(LogCriticalSection);
Ende;
Initialisierung
Start;
Finalisierung
Herunterfahren;
Ende.
Debug-Logfile.
Debug-Logfile. : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Dieser Code zeigt eine Möglichkeit, viel Dinge zu speichern, die in Ihrer Anwendung in einer Protokolldatei vor sich geht.
Hier sind zwei Dateien vorhanden, die Projektdatei und eine Einheit, die die Arbeit...
{Unit1.pas}
Einheit Unit1;
Schnittstelle
verwendet
{$DEFINE DEBUG}
ULog {$IFDEF DEBUG}, {$ENDIF}
Windows, Nachrichten, SysUtils, Klassen, Graphics, Steuerelemente, Formulare, Dialoge,
StdCtrls;
Typ
TForm1 = class(TForm)
Button1: TButton;
Prozedur Button1Click(Sender: TObject);
Private
{Private Deklarationen}
öffentliche
{Public Deklarationen}
Ende;
var
Form1: TForm1;
Umsetzung
{$R *. DFM}
Prozedur TForm1.Button1Click(Sender: TObject);
var
Bar: Integer;
beginnen
Bar: = 100;
{$IFDEF DEBUG}
Protokoll (Format ('Button1.Click; Bar = % d',[Bar]));
{$ENDIF}
Ende;
Ende.
//--------------------------------------------------------------------
{uLog.pas}
uLog Einheit;
Schnittstelle
Verfahren Log (S: String);
Umsetzung
verwendet
Windows, SysUtils;
var
LogFile: TextFile;
LogCriticalSection: TRtlCriticalSection;
Verfahren Log (S: String);
var
SystemTime: TSystemTime;
FileTime: TFileTime;
beginnen
GetSystemTime(SystemTime);
SystemTimeToFileTime (SystemTime, FileTime);
EnterCriticalSection(LogCriticalSection);
WriteLn (LogFile, Format ('%s' %.8x%.8x %s',
[FormatDateTime ('Yy.mm.dd SS', jetzt),
FileTime.dwHighDateTime, FileTime.dwLowDateTime, S]));
LeaveCriticalSection(LogCriticalSection);
Ende;
beim Start des Verfahrens;
var
Dateiname: String;
beginnen
InitializeCriticalSection(LogCriticalSection);
FileName: = Format ('Log File für %s auf % s.txt',
[ParamStr(0), DateTimeToStr(Now)]);
zwar Pos (': ', Dateiname) > 0 tun Dateiname [Pos (': ', Dateiname)]: = '.';
zwar Pos ('/' FileName) > 0 keine Dateiname [Pos ('/' FileName)]: = '-';
zwar Pos ('\ ', Dateiname) > 0 tun Dateiname [Pos ('\', FileName)]: = '.';
AssignFile (LogFile, FileName);
Rewrite(Logfile);
Ende;
Herunterfahren des Verfahrens;
beginnen
CloseFile(LogFile);
DeleteCriticalSection(LogCriticalSection);
Ende;
Initialisierung
Start;
Finalisierung
Herunterfahren;
Ende.