was mir grad ins Auge springt
:
copy(txt_Dokument.Text,0,17);
Strings sind nicht 0 basiert sondern 1 basiert. Dementsprechend ist das erste Zeichen bei Position1. Das mag vielleicht nicht der Fehler sein aber bei copy eine 0 als Startindex zu übergeben ist schon fast ein verbrechen.
Und warum überhaupt so kompliziert? Mir scheint es als willst du die gesammte erste Zeile. Warum dann nicht einfach:
Delphi-Quellcode:
if txt_Dokument.count > 0 then
erste_Zeile := txt_Dokument.strings[0]
else
erste_Zeile = '';
Damit brauchst du nichts umbauen wenn die Zeilen mal etwas länger werden.