Forum: Programmieren allgemein
by ByTheTime,
20. Mär 2014
Okay, ich habe das Problem gelöst ( :thumb: ), allerdings kann ich die Lösung nur vermuten ( :lol: ). Also:
So sahen meine beiden Arrays am Anfang aus:
TJobData = record
AMail, AStep, ACourses, ATimes: String;
ASended, ADecontrol: Boolean;
ALastTime: TTime;
end;
Forum: Programmieren allgemein
by ByTheTime,
20. Mär 2014
Jo mache ich heute Abend :) Ich bin noch etwas am experimentieren und umbasteln.
Habe es ja schonmal erwähnt, das ich ein altes Projekt als Basis genommen habe, das ist natürlich nicht ganz optimal.
Forum: Programmieren allgemein
by ByTheTime,
19. Mär 2014
Okay, ich habe jetzt den ganzen Tag nichts anderes gemacht... Ich habe alles auf den Kopf gestellt, den EventThread rausgenommen und, und, und... Aber ich finde den Fehler nicht! :wall: :evil: :cry:
Ich weiß nur, dass - aus welchen Gründen auch immer - das EventArray urplötzlich verändert wird. Ich habe aus der Anwendung sogar eine Single-Thread Anwendung gemacht und trotzdem tritt dieser...
Forum: Programmieren allgemein
by ByTheTime,
19. Mär 2014
Okay, also das Problem ist ziemlich merkwürdig.
Das ist der Anfang der SendMail-Prozedur:
procedure TMailThread.SendMail(JobID: Integer);
var
i: Integer;
MMail: TStringList;
ID: String;
begin
Forum: Programmieren allgemein
by ByTheTime,
18. Mär 2014
Achso, hier nochmal meine Profi Log-Funktion :)
procedure Log(ShowDateTime: Boolean; s: String);
var
LList: TStringList;
i: Integer;
begin
FLogCritSect.Enter;
Forum: Programmieren allgemein
by ByTheTime,
18. Mär 2014
@Sir_Rufo: Okay, habe mir gedacht das er darauf hinauswill. Merke ich mir für die Zukunft...
@jaenicke: Ja stimmt... Habe ich irgendwie dran vorbei gedacht... Und danke für den Tipp mit dem "IsDebuggerPresent" :thumb:
Noch eine Anmerkung: Eben beim experimentieren ist mir folgendes aufgefallen (man betrachte die for-Schleife welche für das Senden verantwortlich ist):
for i := 0...
Forum: Programmieren allgemein
by ByTheTime,
18. Mär 2014
Ich glaube ich mache ein Debug Projekt, das ist nicht so viel Code, da mach ich mir die "Mühe" :)
@himitsu:
Hö? :stupid:
Was wills du mir damit sagen :gruebel:
Forum: Programmieren allgemein
by ByTheTime,
18. Mär 2014
Das wäre erstmal die vollständige Schleife von oben:
for i := 0 to High(Jobs) do // eben für jeden Job durchgehen
begin
EventCount := 0; // Event-Zähler zurücksetzen
if Jobs.SendWithNextWave = True then { Eine Vorher gesetzte Variable, welche angibt, ob der Job gesendet wird }
for j := 0 to High(Events) do
...
Forum: Programmieren allgemein
by ByTheTime,
18. Mär 2014
Erstmal danke für die Antworten :)
Also es gibt 3 Threads, den ServiceThread, welcher ja immer aktiv ist, jedoch bei mir keine relevanten Aufgaben hat. Dann gibt es noch einen Überwachungs-Thread, welcher auf Events wartet und diese bearbeitet, und den Mail-Thread. Dieser bekommt von dem Überwachungs-Thread immer die Events zugeschoben. Allerdings ist hier alles schön synchronisiert und ich...
Forum: Programmieren allgemein
by ByTheTime,
18. Mär 2014
Hallo,
leider ist der Titel nicht ganz passend gewählt und mein Problem etwas undurchsichtig, aber ich versuche es mal bestmöglich darzustellen:
Ich habe einen Service, in welchem man Jobs anlegen kann, die verschiedene Events abwarten und bei deren eintreten eine Mail verschicken. Das geht auch mit mehreren Jobs. Sprich: Wenn Event A eintritt, dann schicke eine Mail an Person, welche im...