@himitsu:
Oh Danke für den Hinweiß. Das ist ein altes Projekt von mir, was ich etwas umgestellt habe. Hat immer gut funktioniert und mir ist der Fehler nie aufgefallen
Ja, man könnte es auch mit AssignFile+Append+WriteLn... War einfach zufaul das mal in Angriff zu nehmen
@Blup: Habe nur das wichtigste gezeigt. Es läuft alles in CriticalSections
Und ich habe erste Ergebnisse beim Debugging (hatte erst heute Mittag Zeit - jaja, das Schüler sein
):
Delphi-Quellcode:
procedure TMailThread.SendMail(JobID: Integer);
var
i: Integer;
MMail: TStringList;
ID: String;
begin
{ ... }
Log(False, ''); { Wenn diese Zeile "aktive" ist, läuft alles reibungslos. Ist die Zeile nicht gesetzt, kommt in der unten makierten Zeile ein Fehler beim 2. Durchlauf (6. Durchlauf der for-Schleife, 2. Durchlauf der SendMail-Prozedur ;) ) }
for i := 0 to High(Events) do
if Events[i].Mail = Jobs[JobID].Mail then
begin
MMail.Add('---');
MMail.Add(Events[i].Course + ' | ' + Events[i].Span + ' | ' +
Events[i].Status + ' | ' + Events[i].Date + ' | ' + Events[i].Note); // Fehler hier!
MMail.Add('---');
MMail.Add('');
end;
{ ... }
end;
Ich könnte mir vorstellen, warum der Fehler auftritt. Das letzte Event (i=5) hat für das Feld "Status" nur Matsch im Wert. Aber ich weiß noch nicht, wo der herkommt
Aufjedenfall eine sehr lange Zeichenkette. Vllt. haut es deshalb nicht hin. Aber warum sollte die eine Log-Zeile das Problem lösen?