Hi Karl
Du kannst auch an gewissen Stellen die Werte verschiedener Variablen in zB. eine Liste speichern:
Delphi-Quellcode:
procedure TFormxxx.FormCreate(Sender: TObject);
begin
FReportList := TStringlist.Create();
end;
Erzeugen der Liste. Die muss dann bei FormDestroy wieder zerstört werden.
Delphi-Quellcode:
procedure TOpenFileFrame.FileSearcher1MatchFound(Sender: TObject;
const Path: string; const FileInfo: TSearchRec);
var Complettpath, J: String;
begin
if Assigned(FCurrentNode) then
begin
Complettpath := IncludeTrailingPathDelimiter(Path) + FileInfo.Name; // Complettpath := DeleteDrivesName(Complettpath);
AddNewNode(FCurrentNode, FileInfo.Name, Complettpath,TSearchRecAnalyzer.IsDirectory(FileInfo));
FReportList.Add(' TOpenDlg.FileSearcher1MatchFound');
FReportList.Add(' -- Complettpath := : '+ Complettpath);
FReportList.Add(' -- J := ' + J);
FReportList.Add(' -- FFileType := ' + FFileType);
FReportList.Add(' -- FPathlist.Count := : '+ IntToStr(FPathlist.Count));
end;
end;
Füllen der Liste während des Programmlaufs
Erzeugt einn Filestream und speichert die Liste darin. TFileStream.Create schlägt fehl, wenn die Datei schon existiert. So kann ich jeden Testlauf in einer eigenen Liste/Datei festhalten:
Delphi-Quellcode:
procedure TMainForm.WriteReportFile;
var S, DateTimeStr, DS: string;
ReportStream: TFileStream;
begin
DS := DateTimeToStr(Now);
DateTimeStr := StringReplace(DS, ':', '-', [rfReplaceAll]);
S := ExtractFilePath(Application.ExeName) + '\' + 'CodeReport ' +DateTimeStr+'.txt';
Reportstream := TFileStream.Create(S, fmCreate);
try
FReportList.insert(0,DateTimeToStr(Now));
FReportlist.Insert(1,'----------------');
FReportlist.SaveToStream(ReportStream);
finally
Reportstream.Free;
end;
end;
Mit ReplaceStr werden alle Doppelpunkte aus Now entfernt und durch Bindestriche ersetzt. Doppelpunkte sind in Dateinamen zumindest bei Delphi/Windows nicht erlaubt.
Gruss
Delbor