Ach ja,
Assertions kennen auch File und Zeilennummer des Problems, Beispiele für die Verwendung:
OH
AssertErrorProc
und
AssertErrorProc (Beispiel)
inclusive der Möglichkeit die auf eigene Ausgaberoutinen umzusetzen,
siehe obiges Beispiel und
Code:
procedure AssertErrorHandler(const Message, Filename: string; LineNumber: Integer; ErrorAddr: Pointer);
var
S: String;
begin
S := Format('%s (%s, line %d, address $%x)',
[Message, Filename, LineNumber, Pred(Integer(ErrorAddr))]);
writeln(myFile,s);
end;
Ergo: mit den entsprechenden Debuginformationen compiliert kennt die Anwendung Filename und Zeilennummer und man kommt auch recht einfach heran.
Grüsse
Woki