Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Anweisung um in den Debug-Mode zu kommen

  Alt 18. Jan 2021, 13:08
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
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat